Android 调用系统播放器java.io.FileNotFoundException: No content provider:MediaPlayer: setDataSource: IOExce
最新推荐文章于 2024-05-02 11:26:31 发布
最新推荐文章于 2024-05-02 11:26:31 发布 阅读量 1.1w

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

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头部的视频能

我在写安卓作业的过程中,使用过几次videoview,通过设置URI播放在线视频,遇到过几次上述问题,我的解决方法: 方法1:开启网络权限 方法2:换用不同型号的设备(一次我将Pixel 2换成Pixel XL,视频成功播放) 方法3:降低安卓版本(一次我将Android10.0降低到Android6.0,视频成功播放) `java.io.FileNotFoundException` 是 Java 在尝试访问一个文件时,如果该文件不存在于指定的路径下,或者由于某种原因(如权限问题、路径错误等)无法被访问时,就会抛出的一个异常。 ### 问题分析 当我们在 Java 程序中执行与文件相关的操作时,比如读取文件内容、写入文件等,如果指定的文件路径不正确或文件不存在,程序就会抛出 `java.io.FileNotFoundException` 异常。 ### 报错原因 1. 文件路径错误:可能是文件路径写错了,或者文件没有 项目中用到了MediaPlayer播放本地视频文件的功能,遇到了一个很奇葩的问题,在4.0的设备上可以完美播放,但是在7.0的设备上死活播放不了,一直报如下错误 错误信息里出现了这几个字眼“No content provider”,然后就被带沟里去了,一直往这个方向去找问题,网上也有很多说就是没有提供content provider的问题,然后就跟着实现了content provider,然并卵... 选了android课设,然后做到MediaPlayer这里,按照老师实验指导书上的敲完了之后,运行发现,点击音乐之后,播放了但是没有声音, 没有声音这种小事儿,先检查是不是AndroidStudio的AVD模拟器静音了,我把模拟器的音量调到了最大,也还是播放没有声音,然后想着是不是这个模拟器没有配置喇叭,就去试了试直接在文件管理里面打开音乐,然后发现是可以播放的!!! 很明显,是我写的GGMusic app的问题了,然后又仔细和老师的实验指导书上对照了一遍,发现也没有问题,之后看了下控制台的输出,没有报错 为播放器添加MediaPlayer.OnInfoListener监听,在回调方法中打印what,并参照MediaPlayer提供的类型进行对比,比如MediaPlayer: Couldn't open java.io.FileNotFoundException: No content provide错误,对应的就是801,对应的类型为MediaPlayer.MEDIA_INFO_NOT_SEE... Android 9+ MediaPlayer Couldn't open http://XXXX java.io.FileNotFoundException: No content provider 报错处理 通过正确处理文件未找到异常,您可以确保您的应用程序在遇到文件丢失问题时能够正确地处理,并提供适当的反馈给用户。当您在编写Java应用程序时,可能会遇到一个常见的异常,即文件未找到异常(java.io.FileNotFoundException)。这个异常表示您的程序无法找到所需的文件,无论是读取还是写入操作。文件路径错误:如果文件的路径不正确,Java将无法找到文件。文件不存在:如果要打开的文件实际上不存在于指定的路径中,该异常将被抛出。检查文件路径:确保文件的路径是正确的,并且您使用的是正确的分隔符。 01-错误信息: Exception in thread "main" java.io.FileNotFoundException: e:b (拒绝访问。) at java.io.FileOutputStream.open0(Native Method) at java.io.FileOutputStream.open(Unknown Source) at java.io.FileOutputStream.<init>(Unknown Source) at java.io.FileOu Content Provider 属于Android应用程序的组件之一,作为应用程序之间唯一的共享数据的途径,Content Provider 主要的功能就是存储并检索数据以及向其他应用程序提供访问数据的借口。      Android 系统为一些常见的数据类型(如音乐、视频、图像、手机通信录联系人信息等)内置了一系列的 Content Provider, 这些都位于android.prov 写了一个音乐播放器,播放的时候,会出现这样的问题:比如说我点击第三首歌曲,结果没有播放第三首歌曲,而直接播放了第四首歌曲。看了一下日志。发现报错:MediaPlayer: Couldn't open /storage/emulated/0/kgmusic/download/陈小春 - 独家记忆.mp3: java.io.FileNotFoundException: No content provi...