Как воспроизвести видео из папки 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");

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


person eddy    schedule 11.01.2011    source источник


Ответы (4)


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

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

person Stevy888    schedule 11.01.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();
person Bhaumik Shukla    schedule 17.09.2011

Попробуйте этот приведенный ниже код, который наверняка решит вашу проблему, Make 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();  
}

Я хочу, чтобы это помогло вам.

person bhumika rijiya    schedule 18.04.2016

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

person Noureddine Ouertani    schedule 17.06.2016