5 Stimmen

Wie verwendet man MediaController.MediaPlayerControl?

Ich versuche zu verwenden MediaController.MediaPlayerControl zur Anzeige einer MediaController am unteren Rand meiner benutzerdefinierten Ansicht, aber ich kann es nicht zum Laufen bringen. Es stürzt ab bei der ctrl.show(); mit der folgenden Ausnahme, wenn ich versuche, diese Ansicht zu laden:

E/AndroidRuntime( 3007): Verursacht durch: Android.view.WindowManager$BadTokenException: Unable to add window -- token null is not valid; is your activity running?

Hier ist mein Code.

public class MediaPlayerView extends ImageView implements MediaPlayerControl {

    private MediaPlayer mp;
    private MediaController ctrl;
    private Uri data;
    private Context mContext;

    public MediaPlayerView(Context context, Uri data) {
        super(context);
        this.mContext = context;
        this.data = data;
        init();
    }

    public void init() {
        mp = new MediaPlayer();
        try {
            mp.setDataSource(mContext, data);
            mp.prepare();
        } catch(IOException e) {
            e.printStackTrace();
        }
        ctrl = new MediaController(mContext);
        ctrl.setMediaPlayer(this);
        ctrl.setAnchorView(this);
        ctrl.setEnabled(true);
        ctrl.show();
    }

    public boolean canPause() {
        return true;
    }

    public boolean canSeekBackward() {
        return false;
    }

    public boolean canSeekForward() {
        return false;
    }

    public int getBufferPercentage() {
        return (mp.getCurrentPosition()*100)/mp.getDuration();
    }

    public int getCurrentPosition() {
        return mp.getCurrentPosition();
    }

    public int getDuration() {
        return mp.getDuration();
    }

    public boolean isPlaying() {
        return mp.isPlaying();
    }

    public void pause() {
        mp.pause();
    }

    public void seekTo(int pos) {
        mp.seekTo(pos);
    }

    public void start() {
        mp.start();
    }
}

Jede Hilfe ist sehr willkommen!

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X