正常调用系统播放器都很简单,网上的代码也是多的一批。比如
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);}}
所以咋说的,都得尝试一下,这个错误,希望对你们有用,少采坑。。