Dieses Steuerelement erbt von SurfaceView und verwendet MediaPlayer zum Abspielen von Videos.
Kleine Schnittstelle zur Videowiedergabe
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; /** * Videowiedergabesteuerung *@author liuyinjun * @date 2015-2-8 */public class MoviePlayerView erweitert SurfaceView { private MediaPlayer mPlayer; public MoviePlayerView(Context context) { this(context, null) public MoviePlayerView(Context context, AttributeSet attrs) { this(context, attrs, 0 } public MoviePlayerView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); ) ;// setType muss festgelegt werden, sonst treten keine Fehler auf. AudioManager.STREAM_MUSIC) ; mPlayer.setDisplay(mSurfaceHolder); Definieren Sie eine SurfaceView zum Abspielen mPlayer.setOnCompletionListener(new OnCompletionListener() { @Override public void onCompletion(MediaPlayer arg0) { stop(); if(completionListener != null)CompletionListener.onPlayCompletion(); // canvas.drawColor(Color. TRANSPARENT , // PorterDuff.Mode.CLEAR); try { mPlayer.setDataSource(fileName); mPlayer.prepare(); } Catch (IllegalStateException e) { // TODO Automatisch generierter Catch-Block e.printStackTrace(); } Catch (IOException e) { // TODO Automatisch generierter Catch-Block e .printStackTrace(); } mPlayer.start(); } private void stop() { if (mPlayer != null) { mPlayer.release(); mPlayer = null; } } /** * Ressourcen freigeben*/ public void release() { if (mPlayer != null) { mPlayer.release( } } private Callback mSurfaceHolderCallback = new Callback(); Überschreiben Sie public void surfaceDestroyed(SurfaceHolder arg0) { mSurfaceHolder = null } @Override public void surfaceCreated(SurfaceHolder arg0) { // TODO Automatisch generierter Methoden-Stub mSurfaceHolder = arg0 } @Override public void surfaceChanged(SurfaceHolder arg0, int arg1, int arg2, int arg3) { // TODO Automatisch generierter Methoden-Stub mSurfaceHolder = arg0; } }; /** * Rückruf für erfolgreiche Wiedergabe *@author liuyinjun * @date 2015-2-9 */ public interface OnPlayCompletionListener{ public void onPlayCompletion( } }Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er gefällt Ihnen allen.