Как воспроизвести видео из папки sd
Я надеюсь, что это не повторяющийся вопрос, а из следующего кода
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 ответа
Итак, для начала вам нужно убедиться, что вы используете.setAnchorView(View v) на вашем mediaController, иначе он не будет правильно управлять videoView. Также вы пропустили свой.start(), чтобы фактически запустить видео. Недавно сделав нечто похожее с потоковой передачей из видеофайла RSTP, я могу сказать, что есть вероятность, что он не работает, потому что вы запускаете его на эмуляторе, воспроизведение видео на AVD часто не работает. Попробуйте запустить его на физическом устройстве, если у вас есть доступ к нему, также прочитайте logcat, чтобы лучше понять, где происходят ошибки.
Надеюсь, это поможет.
Для воспроизведения видеофайлов с 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();
Попробуйте приведенный ниже код, который наверняка решит вашу проблему. Сделайте 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();
}
Я желаю, чтобы это помогло вам.
У меня был тот же вопрос, и я нашел решение. Мой код в ссылке работает нормально. Проверьте этот вопрос мой