Как воспроизвести видео из папки sd - PullRequest
2 голосов
/ 11 января 2011

Итак, я надеюсь, что это не повторяющийся вопрос, но из следующего кода

File f = new File(Environment.getExternalStorageDirectory(), TRYVID);  
Uri uri = Uri.fromFile(f);
mc = new MediaController(this);
mp.setMediaController(mc);
mp.setVideoPath("/sdcard/try2.mp4");

это часть функции, которая вызывается при нажатии кнопки, и я надеюсь, что когдапользователь нажимает клавишу, видео воспроизводится, но я узнал, что videoview не воспроизводит ничего из необработанной папки, поэтому я скопировал видео в SDCard, но затем после нажатия на кнопку на эмуляторе, он просто вылетает говоритэто должно быть неожиданно близко.Я пробовал как .setVideoPath, так и .setUri, но оба не работают, хм, кто-нибудь может указать на мою проблему здесь?

Ответы [ 4 ]

1 голос
/ 17 сентября 2011

Для воспроизведения видеофайлов с SD-карты вы можете попробовать это:

String filepath = Environment.getExternalStorageDirectory()+"/a.mp4";
VideoView vv = new VideoView(getApplicationContext());
setContentView(vv);
vv.setVideoPath(filepath);
vv.setMediaController(new MediaController(this));
vv.requestFocus();
vv.start();
1 голос
/ 11 января 2011

Хорошо, так что сначала вам нужно убедиться, что вы используете .setAnchorView (View v) на вашем mediaController, иначе он не будет правильно управлять videoView.Также вам не хватает .start () для фактического запуска видео.Недавно сделав нечто похожее с потоковой передачей из видеофайла RSTP, я могу сказать, что есть вероятность, что он не работает, потому что вы запускаете его на эмуляторе, воспроизведение видео на AVD часто не работает.Попробуйте запустить его на физическом устройстве, если у вас есть доступ к нему, также прочитайте logcat, чтобы лучше понять, где происходят ошибки.

Надеюсь, это поможет.

0 голосов
/ 17 июня 2016

У меня был тот же вопрос и я нашел решение.Мой код в ссылке работает нормально.Проверьте мой вопрос

0 голосов
/ 18 апреля 2016

Попробуйте приведенный ниже код, чтобы решить эту проблему. Сделайте videoView,

VideoView videoView;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    videoView = (VideoView)findViewById(R.id.VideoView);        
    videoView.setVideoPath("/sdcard/blonde_secretary.3gp");
    videoView.start();  
}

Хотелось бы, чтобы это помогло вам.

...