يرث عنصر التحكم هذا من SurfaceView ويستخدم MediaPlayer لتشغيل مقاطع الفيديو.
واجهة تشغيل فيديو صغيرة
MoviePlayerView.java
import java.io.IOException;import android.content.Context;import android.media.AudioManager;import android.media.MediaPlayer;import android.media.MediaPlayer.OnCompletionListener;import android.util.AttributeSet;import android.view.SurfaceHolder ;import android.view.SurfaceHolder.Callback;import android.view.SurfaceView; /** * التحكم في تشغيل الفيديو *@author liuyinjun * @date 2015-2-8 */public class MoviePlayerView Extends SurfaceView { public SurfaceHolder mSurfaceHolder; public MoviePlayerView(Context context) { this(context, null }); public MoviePlayerView(Context context, AttributeSet attrs) { this(context, attrs, 0) public MoviePlayerview (سياق السياق ، attributeset ، int defstyle) {super (السياق ، defstyle) ؛ ) ;// يجب تعيين setType، وإلا فلن تكون هناك أخطاء. } /** * تشغيل الفيديو *param fileName file path */ public void play(String fileName, Final OnPlayCompletionListenerCompleteListener) { mPlayer = new MediaPlayer(); AudioManager.STREAM_MUSIC) ; حدد SurfaceView لتشغيله mPlayer.setOnCompletionListener(new OnCompletionListener() { @Override public void onCompletion(MediaPlayer arg0) { stop(); if(completionListener != null)CompleteListener.onPlayCompletion(); // Canvas.drawColor(Color. شفاف , // PorterDuff.Mode.CLEAR } }); mPlayer.setDataSource(fileName); mPlayer.prepare(); } Catch (IllegalStateException e) { // كتلة الصيد التي تم إنشاؤها تلقائيًا لـ TODO e.printStackTrace(); .printStackTrace(); } mPlayer.start(); } public void stop() { if (mPlayer != null) { mPlayer.release(); mPlayer = null } } /** * تحرير الموارد*/ public void Release() { if (mPlayer != null) { mPlayer.release() = null } } رد اتصال خاص mSurfaceHolderCallback = new Callback() { @ تجاوز public void surfaceDestroyed(SurfaceHolder arg0) { mSurfaceHolder = null } @Override public void surfaceCreated(SurfaceHolder arg0) { // TODO Auto-generated way stub mSurfaceHolder = arg0 } @Override public void surfaceChanged(SurfaceHolder arg0, int arg1, int arg2, int arg3) { // TODO Auto-generated way stub mSurfaceHolder = arg0; } }; رد الاتصال بنجاح التشغيل *@author liuyinjun * @date 2015-2-9 */ public Interface OnPlayCompletionListener{ public void onPlayCompletion() } }ما ورد أعلاه هو محتوى هذه المقالة بالكامل، وآمل أن تنال إعجابكم جميعًا.