【问题标题】:Android: not able to play video using videoviewAndroid:无法使用 videoview 播放视频
【发布时间】:2019-10-20 05:25:12
【问题描述】:

请在下面找到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)

我在互联网上看到许多使用相同代码的示例,但就我而言,它不起作用。

【问题讨论】:

标签: android android-studio android-layout android-videoview


【解决方案1】:

我建议您使用 WebView 而不是视频视图。

这样会更好。

但为了你的回答

1.检查您的连接

2.检查您的权限

3.检查您使用 Debug 构建的 Url

4.将start方法放入try catch

现在这行似乎有问题:

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

uri 表示您设备中的文件路径而不是 url,请检查并重试。

你可以在 cmets 中更新我

编辑: 使用这个方法:

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

下一个解决方案:使用Uri.fromFile 而不是Uri.parse

和

使用这两种方法:

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();

【讨论】:

  • 这是一个本地视频,在 raw 文件夹中。
  • 你检查了所有所说的步骤吗?
  • 请在最后尝试然后只发布这些答案,因为我已经在我的问题中提到我尝试了其他可用的示例。
  • 请完整回答。
  • 你是什么意思?这是一个完整的答案,只需在您的代码中尝试...
猜你喜欢
  • 1970-01-01
  • 2012-11-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多