Сохранение MediaController на экране в VideoView

Мне не удается найти способ сохранить MediaController на экране при использовании его с VideoView. Я хочу воспроизвести аудиофайл, который находится в папке res / raw в моем приложении. Файл воспроизводится, но я хотел бы, чтобы контроллер отображался на экране, чтобы пользователь мог видеть длину файла, сколько времени осталось до его окончания и т. Д. Я много раз встречал на форумах, что мы должны использовать метод .show (время) для этого, но я не могу понять, как заставить это работать.

Вот код, который я использую:

package com.sample.VideoViewExample;
import android.app.Activity;
import android.net.Uri;
import android.os.Bundle;
import android.view.SurfaceHolder;
import android.widget.MediaController;
import android.widget.VideoView;

public class VideoViewExample extends Activity implements SurfaceHolder.Callback{
   private VideoView mVideoView;
   private MediaController mMedia;

   @Override
   public void onCreate(Bundle icicle) {
     super.onCreate(icicle);
     setContentView(R.layout.main);

     mVideoView = (VideoView) findViewById(R.id.surface_view);
     //mVideoView.getHolder().addCallback(this);
     //mMedia.show(50000);
     //mVideoView.setMediaController(mMedia);

     MediaController mMedia = new MediaController(this);
     mMedia.setMediaPlayer(mVideoView);
     mMedia.setAnchorView(mVideoView);
     mVideoView.setMediaController(mMedia);

     mVideoView.setVideoURI(Uri.parse("android.resource://" + getPackageName() +"/"+R.raw.osa_patient)); 

     mVideoView.requestFocus();
     mVideoView.start();

   }

@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width,
        int height) {
    // TODO Auto-generated method stub

}

@Override
public void surfaceCreated(SurfaceHolder holder) {
    // TODO Auto-generated method stub
    mMedia.show(500000);

}

@Override
public void surfaceDestroyed(SurfaceHolder holder) {
    // TODO Auto-generated method stub

}
}

Когда я добавляю строку mVideoView.getHolder (). AddCallback (this); ошибка приложения, я не знаю почему.

Любая помощь или альтернатива тому, что я хотел бы сделать, более чем приветствуются :)

Спасибо, JB

6
задан Jeff Axelrod 7 September 2012 в 19:31
поделиться