Я пытаюсь использовать MediaController.MediaPlayerControl
для отображения MediaController
в нижней части моего пользовательского представления, но я не могу заставить его работать , Это происходит сбой в ctrl.show ();
со следующим исключением, когда я пытаюсь загрузить это представление:
E / AndroidRuntime (3007): вызвано: android.view.WindowManager $ BadTokenException: невозможно добавить окно - токен null недействителен; ваша деятельность запущена?
вот мой код.
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();
}
}
Любая помощь с благодарностью!