Android: не умеет воспроизводить видео с помощью видеовьюва - PullRequest
0 голосов
/ 20 октября 2019

Пожалуйста, найдите ниже xml

<VideoView
        android:id="@+id/video_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
    />

Java-код:

  String url = "android.resource://com.example.androidtutorial/" + R.raw.instructions;
  videoView.setVideoURI(Uri.parse(url));
  videoView.start();

Ошибка отображается в Logcat:

2019-10-20 10:51:16.708 5063-5063/? E/androidtutoria: Unknown bits set in runtime_flags: 0x8000
2019-10-20 10:51:22.825 5063-5080/com.example.androidtutorial E/MediaPlayerNative: error (1, -2147483648)
2019-10-20 10:51:23.178 5063-5063/com.example.androidtutorial E/MediaPlayer: Error (1,-2147483648)

Я видел много примеров в Интернетекоторый использует тот же код, но в моем случае он не работает.

1 Ответ

0 голосов
/ 20 октября 2019

Я советую вам использовать WebView вместо просмотра видео.

, который будет работать лучше.

Но для вашего ответа

1.проверьте соединение

2.Проверьте ваши права доступа

3.Проверьте URL-адрес, который вы строите с помощью Debug

4.put Запустите метод запуска в try catch

Теперь кажется, что проблема в этой строке:

videoView.setVideoURI(Uri.parse(url));

uri означает путь к файлу на вашем устройстве, а не URL, проверьте его и попробуйте снова.

вы можете обновить меня в комментариях

Отредактировано: используйте этоМетод:

public Uri getRawUri(String filename) {
    return Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE + 
File.pathSeparator + File.separator + getPackageName() + "/raw/" + 
filename);
}

Следующее решение: используйте Uri.fromFile вместо Uri.parse

И

Используйте следующие 2 метода:

video.setVideoURI(URI);
video.setMediaController(new MediaController(this));
video.requestFocus();
video.start();

Попробуйте это в вашем onCreate() методе:

Uri URI = getRawUri(instructions);
MediaController mediaController = new MediaController(this);
    mediaController.setAnchorView(video)

video.setVideoURI(URI);
video.setMediaController(mediaController);
video.requestFocus();
video.start();
...