Android videoview random java.io.FileNotFoundException:没有内容提供者

时间:2015-09-14 12:43:37

标签: android android-videoview

我有一个videoView并从远程服务器加载视频。 我收到的随机错误如下所示。 问题是,它有时有效,有时它不会。

videoView.setVideoURI(Uri.parse(Constants.API_IMAGE_HOST + "ads/video/" + this.adVideoObject.ad_videos_id + ".mp4"));

我得到的错误是:

MediaPlayer﹕ setDataSource IOException happend :
    java.io.FileNotFoundException: No content provider:

同样,我有时会得到它但不总是。

2 个答案:

答案 0 :(得分:4)

好的,正如我在很多其他关于VideoView的帖子中所提到的,不要使用它!我是一个专业的Android开发人员,开发所有关于视频播放的应用程序,根据我的经验,VideoView完全不可靠,如果不是不可能让它在多个设备上正常运行是非常困难的。如果播放对您的应用程序非常重要,我强烈建议您查看ExoPlayer库。设置起来比较困难,但性能和可靠性的改进是值得的。

我很抱歉这没有明确回答你的问题。但是我相信你会发现ExoPlayer库非常适合使用VideoView或MediaPlayer。

答案 1 :(得分:0)

错误

  

D / MediaPlayer:setDataSource IOException | SecurityException发生:       java.io.FileNotFoundException:没有内容提供者:http://192.168.1.114:1376/%25/F885C5CE27F16C4D64588D48A3001A1B/9.mp4           在android.content.ContentResolver.openTypedAssetFileDescriptor(ContentResolver.java:1137)           在android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:988)           在android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:911)           在android.media.MediaPlayer.attemptDataSource(MediaPlayer.java:1102)           在android.media.MediaPlayer.setDataSource(MediaPlayer.java:1093)

是VideoView setDataSource的正常流程的一部分。它尝试在本地打开文件,然后远程加载。

通常会有另一条错误消息说明实际的失败。

在我的情况下,getDuration被调用的状态不正确。因此,请查看日志,并检查您是否遵循文档中的状态图并确保仅在视图处于正确状态时调用API