У меня есть videoView, где я показываю видео, и я хочу показать медиа-контроллеры по умолчанию. По какой-то причине контроллеры, похоже, не хотят появляться.Android - Контроллер СМИ не отображается
Я попытался создать MediaController с помощью xml, установив его всегда видимым, прикрепляя его к медиаплееру с помощью mMediaController.setMediaPlayer(mVideoView)
, но ничего не работает.
Я использую классический код видео плеер от Google, который можно найти здесь: http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/media/MediaPlayerDemo_Video.html
Что может случаться? Слушает ли слушатель событие? Не связано ли это с фактической видеоиграми? Должен ли я добавить что-то еще в код, который я использую (см. Ниже)?
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.activity_content_video);
[...]
mVideoView = (VideoView) findViewById(R.id.surface);
mainVideoHolder = (LinearLayout) findViewById(R.id.main_video_holder);
holder = mVideoView.getHolder();
holder.addCallback(this);
mMediaController = new MediaController(this);
mMediaController.show();
}
private void playVideo() {
doCleanUp();
try {
mMediaPlayer = new MediaPlayer();
Log.d(tag, "surfaceCreated");
File f = new File(mAssetsPath);
File[] files = f.listFiles();
Log.d(tag, "File: " + files[0].toString());
URI uri = URI.create("file://" + (files[0].toString()));
File file = new File(uri);
ParcelFileDescriptor parcel = ParcelFileDescriptor.open(file, ParcelFileDescriptor.MODE_READ_WRITE);
mMediaPlayer.setDataSource(parcel.getFileDescriptor());
mMediaPlayer.setDisplay(holder);
mMediaPlayer.prepare();
mMediaPlayer.setOnBufferingUpdateListener(this);
mMediaPlayer.setOnCompletionListener(this);
mMediaPlayer.setOnPreparedListener(this);
mMediaPlayer.setOnVideoSizeChangedListener(this);
mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mMediaController.setMediaPlayer(mVideoView);
mVideoView.setMediaController(mMediaController);
} catch (Exception e) {
Log.e(tag, "error: " + e.getMessage(), e);
}
}
public void surfaceCreated(SurfaceHolder holder) {
Log.d(tag, "surfaceCreated called");
playVideo();
}
Любые идеи были бы весьма полезными?
В этой деятельности нет темы, и видео воспроизводится в обычном режиме без каких-либо ошибок. Просто медиа-контролеры не появляются!
Спасибо.
Я добавляю его в нижней части относительной компоновки что videoView находится, и у меня есть его с красным фоном, чтобы он был как можно более заметным. Ничего не видно, хотя в этом регионе. У кого-нибудь есть рабочий пример добавленного вручную медиаконтроллера? Может быть, деятельность должна быть конкретной, возможно? Или что-то происходит с видео, и он всегда находится перед медиа-контроллером? –