Kontrol ini mewarisi dari SurfaceView dan menggunakan MediaPlayer untuk memutar video.
Antarmuka pemutaran video kecil
MoviePlayerView.java
impor java.io.IOException;impor android.content.Context;impor android.media.AudioManager;impor android.media.MediaPlayer;impor android.media.MediaPlayer.OnCompletionListener;impor android.util.AttributeSet;impor android.view.SurfaceHolder ;impor android.view.SurfaceHolder.Callback;impor android.view.SurfaceView; /** * Kontrol pemutaran video *@author liuyinjun * @tanggal 8-2-2015 */MoviePlayerView kelas publik meluas SurfaceView { private SurfaceHolder mSurfaceHolder; private MediaPlayer mPlayer; public MoviePlayerView(Konteks konteks, AttributeSet attrs) { ini(konteks, attrs, 0 } public MoviePlayerView(Konteks konteks, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); mSurfaceHolder = this.getHolder(); mSurfaceHolder.addCallback(mSurfaceHolderCallback); // pemegang bergabung dengan antarmuka panggilan balik mSurfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS ) ;// setType harus disetel, jika tidak, tidak akan ada kesalahan. } /** * Putar video * @param fileName jalur file */ public void play(String fileName, final OnPlayCompletionListener penyelesaianListener) { mPlayer = new MediaPlayer(); AudioManager.STREAM_MUSIC) ; mPlayer.setDisplay(mSurfaceHolder); Tentukan SurfaceView untuk memainkannya mPlayer.setOnCompletionListener(new OnCompletionListener() { @Override public void onCompletion(MediaPlayer arg0) { stop(); if(completionListener != null) penyelesaianListener.onPlayCompletion(); // canvas.drawColor(Color. TRANSPARAN , // PorterDuff.Mode.CLEAR); mPlayer.setDataSource(fileName); mPlayer.prepare(); } catch (IllegalStateException e) { // TODO Blok tangkapan yang dibuat secara otomatis e.printStackTrace(); .printStackTrace(); } mPlayer.start(); } private void stop() { jika (mPlayer != null) { mPlayer.release(); mPlayer = null; } } /** * Rilis sumber daya*/ public void rilis() { if (mPlayer != null) { mPlayer.release(); Ganti public void SurfaceDestroyed(SurfaceHolder arg0) { mSurfaceHolder = null } @Override public void SurfaceCreated(SurfaceHolder arg0) { // TODO Stub metode yang dibuat secara otomatis mSurfaceHolder = arg0; } @Override public void SurfaceChanged(SurfaceHolder arg0, int arg1, int arg2, int arg3) { // TODO Metode yang dibuat secara otomatis stub mSurfaceHolder = arg0; } }; /** * Panggilan balik sukses pemutaran *@author liuyinjun * @tanggal 9-2-2015 */ antarmuka publik OnPlayCompletionListener{ public void onPlayCompletion();Di atas adalah keseluruhan isi artikel ini, saya harap Anda semua menyukainya.