Android 调用系统播放器java.io.FileNotFoundException: No content provider:MediaPlayer: setDataSource: IOExce

编程知识 更新时间:2023-04-05 06:57:34

正常调用系统播放器都很简单,网上的代码也是多的一批。比如

String extension = MimeTypeMap.getFileExtensionFromUrl(Url);
String mimeType = MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension);
Intent mediaIntent = new Intent(Intent.ACTION_VIEW);
mediaIntent.setDataAndType(Uri.parse(newUrl), mimeType);
startActivity(mediaIntent);

这个就很好用了,但是我调用在小米手机上正常,华为和vivo手机出出现黑屏,视频无法播放的问题,错误如下:

05-10 10:33:32.859 15170-15170/? E/MediaPlayer: setDataSource: IOException! uri=06a35be2ff4a42b38ad6fcda2d266c6e/196327b6fae9445baec0eda4ded8d1ea-23fabd8443a07e681576e09477b7642b-ld.mp4
java.io.FileNotFoundException: No content provider: 06a35be2ff4a42b38ad6fcda2d266c6e/196327b6fae9445baec0eda4ded8d1ea-23fabd8443a07e681576e09477b7642b-ld.mp4

网上找了很多资料没什么软用,怀疑是权限啊什么的原因!后面发现是不是Url的问题,然后,选用了没有添加https头部的视频能正常播放,所以就愉快的进行了一下的改正

if (!TextUtils.isEmpty(video_url)) {
    if (video_url.contains("https")) {
        String newUrl = video_url.substring(0, 4) + video_url.substring(5, video_url.length());
        Log.i("TAG", newUrl);
        String extension = MimeTypeMap.getFileExtensionFromUrl(newUrl);
        String mimeType = MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension);
        Intent mediaIntent = new Intent(Intent.ACTION_VIEW);
        mediaIntent.setDataAndType(Uri.parse(newUrl), mimeType);
        startActivity(mediaIntent);
    }

}

所以咋说的,都得尝试一下,这个错误,希望对你们有用,少采坑。。

更多推荐

Android 调用系统播放器java.io.FileNotFoundException: No content provider:MediaPlayer: s

本文发布于:2023-04-05 06:57:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/f8ebf5a64718ee4b918e60c8b7f7913f.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:播放器   系统   io   java   Android

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 45410文章数
  • 14阅读数
  • 0评论数