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!