Android Studio的MediaPlayer播放本地视频

关于MediaPlayer错误[open failed: EACCES (Permission denied)]

可能会有下面几个方面的错

1.权限没有添加

2. targetSdkVersion过高

下面附上一些代码

关于MediaPlayer错误[open failed: EACCES (Permission denied)]

可能会有下面几个方面的错

1.权限没有添加

1)在AndroidMainifest.xml文件中添加用户权限

2)还要动态获取权限

在MainActivity中添加

private final int REQUEST_EXTERNAL_STORAGE = 1;

private String[] PERMISSIONS_STORAGE = {

Manifest.permission.READ_EXTERNAL_STORAGE,

Manifest.permission.WRITE_EXTERNAL_STORAGE };

public void verifyStoragePermissions(Activity activity) {

// Check if we have write permission

int permission = ActivityCompat.checkSelfPermission(activity,

Manifest.permission.WRITE_EXTERNAL_STORAGE);

if (permission != PackageManager.PERMISSION_GRANTED) {

// We don't have permission so prompt the user

ActivityCompat.requestPermissions(activity, PERMISSIONS_STORAGE,

REQUEST_EXTERNAL_STORAGE);

}

}

记得在onCreat()方法中调用

verifyStoragePermissions(this);

当然可以简单粗暴的通过配置用户信息添加存储权限

2. targetSdkVersion过高

将targetSdkVersion改为26 本来我这里是29的 太高了 导致编译的时候出错 改为26就可以了

对于此次本地视频播放器的实现 最为纠结的就是页面显示 播放器出错 看了许多篇博客 都是权限的问题 我在最初的时候就添加了权限所以很可能不是这个问题 又尝试用其他方法实现播放 发现还是MediaPlayer好写一些可以用监听实现

还有一些博客说content provider这个没有试过 我试了调试的方法 发现能定位到uri的位置 还有最重要的一点 遇到问题 要自己分析 试着调试一下 找到问题的所在

本来以为实现不了了 又翻到一篇很有用的博客 改了targetSdkVersion就实现了本地视频的播放

下面附上一些代码

public class SystemVedioPlayer extends AppCompatActivity {

private VideoView videoView;

private Uri uri;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_system_vedio_player);

videoView=findViewById(R.id.videoview);

uri=getIntent().getData();

System.out.println("uri:"+uri);

videoView.setVideoURI(uri);

videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {

@Override

public void onPrepared(MediaPlayer mp) {

videoView.start();

}

});

videoView.setOnErrorListener(new MediaPlayer.OnErrorListener() {

@Override

public boolean onError(MediaPlayer mp, int what, int extra) {

Toast.makeText(SystemVedioPlayer.this,"播放出错了",Toast.LENGTH_SHORT).show();

System.out.println("what:"+what+"\n extra: "+extra);

return true;

}

});

videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {

@Override

public void onCompletion(MediaPlayer mp) {

Toast.makeText(SystemVedioPlayer.this,"播放已完成 ",Toast.LENGTH_SHORT).show();

finish();

}

});

//设置控制面板

videoView.setMediaController(new MediaController(this));

}

}

//设置视频点击事件

vedioPager.setOnItemClickListener(new AdapterView.OnItemClickListener() {

@Override

public void onItemClick(AdapterView> parent, View view, int position, long id) {

MediaItem mediaItem=mediaItems.get(position);

//使用系统自带播放软件

// Intent intent=new Intent();

// intent.setDataAndType(Uri.parse(mediaItem.getData()),“video/");

// mContext.startActivity(intent);

Intent intent=new Intent(mContext, SystemVedioPlayer.class);

intent.setDataAndType(Uri.parse(mediaItem.getData()),"video/”);

System.out.println("Uri.parse(mediaItem.getData(): "+Uri.parse(mediaItem.getData()));

mContext.startActivity(intent);

参考网址:

[1]: https://cloud.tencent.com/developer/article/1381003

[2]: https://blog.csdn.net/twc18638942853/article/details/53218659

android studio播放视频权限,Android Studio实现本地视频播放相关推荐

  1. android webview 播放视频总结,Android WebView 播放视频总结~

    此次遇到一个问题就是webView无法播放视频,查了下谷歌发现可以设置 setting.setPluginsEnabled(true); (从API 11 支持,可以不加) 这个从而播放视频,但是最新 ...

  2. Android MediaPlayer播放视频详细步骤

    MediaPlayer类是媒体框架最重要的组成部分之一,此类的对象能够获取,解码以及播放音频和视频,而且只需极少量设置,它支持多种不同的媒体源,例如: 本地资源 内部Url,例如您可能从内容解析器获取 ...

  3. android 6 videoview,android VideoView播放视频-source

    [实例简介]android VideoView播放视频-source [实例截图] [核心代码] package com.example.shenxiaolei.myapplication; impo ...

  4. android音乐播放器git,Android音乐播放器

    Android音乐播放器 介绍 Android音乐播放器开发 进度 算是全部完成了,后续只会改进了. 如何使用 按这篇博客修改一下gradle相关文件,匹配自己的开发环境 日志 2020.12.15 ...

  5. [Android]简易播放视频

    播放视频 使用kotlin 使用MediaController+VideoView实现方式视频播放和常用控制 这种方式是最简单的实现方式,是Android原生框架提供的方法,有比较好的兼容性 Vide ...

  6. Android WebView播放视频(包括全屏播放)

    最近项目开发中用到了WebView播放视频的功能,总结了开发中犯过的错误,这些错误在开发是及容易遇到的,所以我这里总结了一下,希望大家看到后不要再犯类似的错误,尽可能提高开发效率: 这个Demo我这里 ...

  7. Android VideoView 播放视频

    目录 VideoView 简 介 播放 res/raw 目录下的文件 播放设备本地文件 Environment 类详解 播放网络在线视频 uses-permission 权限统计 VideoView ...

  8. android语音播放工具类,Android开发之MediaPlayer多媒体(音频,视频)播放工具类

    本文实例讲述了Android开发之MediaPlayer多媒体(音频,视频)播放工具类.分享给大家供大家参考,具体如下: package com.android.imooc.chat; import ...

  9. Android WebView播放视频并支持全屏

    1. 前言 支持视频在线播放的网页随处可见,前端开发不需要做太多的工作就可以实现大多数需求.因为播放视频的具体功能是由浏览器核心在处理的.我以为Android的WebView应该是默认支持视频播放的, ...

最新文章

  1. springmvc常用注解标签详解
  2. C#泛型集合之Dictionaryk, v使用技巧
  3. C语言:关键字volatile详解!
  4. 【转】分布式一致性算法:Raft 算法(Raft 论文翻译)
  5. idea在分屏拖不回来_朋友圈赏花晒照新玩法,宫格分屏视频!
  6. linux net 伪指令码,1.2.2. ldr pWTCON
  7. ucinet计算聚类系数大于1怎么办_聚类性能评估-ARI(调兰德指数)
  8. 财富自由之路,其实取决于你的工作效率
  9. python-面向对象-05_面向对象封装案例 II
  10. c# 获取word表格中的内容_Java 在Word中创建嵌套表格
  11. 网管日志-06.08.16
  12. 递归 非递归 遍历二叉树
  13. 华为ICT认证是什么意思?
  14. 人脸识别最全知识图谱,中国学者数量全球第三—清华大学出品
  15. 【bzoj4972】小Q的方格纸 前缀和
  16. Vivo应用商店上架最全最细流程
  17. linux安装Android Studio
  18. 通用虚拟平台virt
  19. 微信支付实战(完整的代码,复制即可用)
  20. 神武4手游服务器维护,神武4手游快速升级攻略 神武4手游新区老区冲级攻略

热门文章

  1. 怎么把服务器xen虚拟化,Xen Server 6.1虚拟化详细安装图文
  2. 云开发连接mysql_详解小程序云开发数据库
  3. 苹果ipad mini 9.35版本越Yu出现问题
  4. 详解Apache下.htaccess文件的8个用法
  5. linux命令行界面_Linux中的命令行界面
  6. 基于STC单片机的无线充电系统
  7. Libusb-1.0.18 编译 、Usb-wifi编译、脚步编写
  8. ZDHC认证辅导,对具有现场零液体排放(ZLD)处理系统的供应商的要求
  9. windows资源保护找到了损坏文件但无法修复
  10. 腾讯起诉vivo不正当竞争;链家程序员删除公司9TB数据被判7年;iPhone关机后仍在运行,或成恶意软件温床 | EA周报...