2016-06-01 15 views

Antwort

0

Ich habe keine gute Antwort darauf (so viele Menschen mit Threads) gesehen. Hier ist meins:

import android.content.Context; 
import android.util.AttributeSet; 
import android.widget.VideoView; 

public class PlayStateBroadcastingVideoView extends VideoView{ 
    public interface PlayPauseListener { 
     void onPlay(); 
     void onPause(); 
    } 

    private PlayPauseListener mListener; 

    public PlayStateBroadcastingVideoView(Context context) { 
     super(context); 
    } 

    public PlayStateBroadcastingVideoView(Context context, AttributeSet attrs) { 
     super(context, attrs); 
    } 

    public PlayStateBroadcastingVideoView(Context context, AttributeSet attrs, int theme) { 
     super(context, attrs, theme); 
    } 

    @Override 
    public void pause() { 
     super.pause(); 
     if(mListener != null) { 
      mListener.onPause(); 
     } 
    } 

    @Override 
    public void start() { 
     super.start(); 
     if(mListener != null) { 
      mListener.onPlay(); 
     } 
    } 

    public void setPlayPauseListener(PlayPauseListener listener) { 
     mListener = listener; 
    } 

} 

Es funktioniert, weil beim Tauchen in den Code (zumindest von 5,0), die einzige Funktion, die es in die Pause setzt Zustand Pause ist, und der einzige, der es in das Spiel Zustand versetzt ist Start. Also haken wir diese einfach an, um uns über einen Listener zu benachrichtigen. Verwenden Sie diese Klasse dann in Ihrem Layout anstelle von VideoView.