2015-10-05 4 views
0

Я модифицировал пример кода видеоплеера; код примера воспроизводил видео из каталога ресурсов программы. Я скопировал видео в каталог телефона/storage/emulated/0/DCIM/и добавил три строки:Код для открытия видео в videoView из хранилища телефонов Android

String videoName1 = Environment.getExternalStorageDirectory(). GetPath() + "/ DCIM/steprock";

Uri videoUri = Uri.parse (videoName1);

videoView.setVideoURI (videoUri);

заменить:

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

Это изменение вызывает ошибку файла. Видео находится в директории DCIM для хранения телефона. Я также попробовал добавить .mp4 к названию видео.

В режиме отладки УИР, кажется, правильное значение:/хранение/ЭМУЛИРОВАННЫЙ/0/DCIM/steprock

Можно ли обнаружить код ошибки? Ниже приводится неполный список:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    final VideoView videoView = (VideoView) findViewById(R.id.video_view); 
    String videoName1 = Environment.getExternalStorageDirectory().getPath()+"/DCIM/steprock"; 
    Uri videoUri = Uri.parse(videoName1); 
    videoView.setVideoURI(videoUri); 
    //videoView.setVideoURI(Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.steprock)); 

ответ

1

Я нашел ошибку, забыл добавить разрешение на чтение ниже манифеста:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"></uses-permission> 
<application ... 
0

Это код, воспроизводящий видео по пути, который вы описываете для видео в VideoView.

// Video path. 
path = Environment.getExternalStorageDirectory().getPath()+"/DCIM/steprock.mp4"; 
videoView = (VideoView) findViewById(R.id.video_view); 
final MediaController mediaController = new MediaController(this); 

mediaController.setAnchorView(videoView); 

Uri uri = Uri.parse(path); 

videoView.setMediaController(mediaController); 
videoView.setVideoURI(uri); 
videoView.requestFocus(); 
videoView.start(); 
Смежные вопросы