ijkplayer实现IMediaDataSource
由于ijkplayer不能识别android.resource类型的资源在播放raw中的文件的时候用IjkMediaPlayer不能正常播放,实现IMediaDataSource为IjkMediaPlayer提供资源。
class RawDataSourceProvider implements IMediaDataSource{
    AssetFileDescriptor mDescriptor;
    byte[]  mMediaBytes;
    long mPosition;
    public RawDataSourceProvider(AssetFileDescriptor descriptor) {
        this.mDescriptor = descriptor;
    }
    @Override
    public int readAt(long position, byte[] buffer, int offset, int size) throws IOException {
        if(position +  >= mMediaBytes.length){
            return -;
        }
        int length;
        if(position + size < mMediaBytes.length){
            length = size;
        }else{
            length = (int) (mMediaBytes.length - position);
            if(length > buffer.length)
                length = buffer.length ;
            length--;
        }
        System.arraycopy(mMediaBytes, (int) position, buffer, offset, length);
        mPosition = position;
        return length;
    }
    @Override
    public long getSize() throws IOException {
        long length  = mDescriptor.getLength();
        if(mMediaBytes == null){
            Source source = Okio.source(mDescriptor.createInputStream());
            mMediaBytes = Okio.buffer(source).readByteArray();
        }
        return length;
    }
    @Override
    public void close() throws IOException {
        if(mDescriptor != null)
            mDescriptor.close();
        mDescriptor = null;
        mMediaBytes = null;
    }
}
https://www.cnblogs.com/xwgblog/p/5287151.html
ijkplayer实现IMediaDataSource的更多相关文章
- Android  音视频深入 十九 使用ijkplayer做个视频播放器(附源码下载)
		项目地址https://github.com/979451341/Myijkplayer 前段时候我觉得FFmpeg做个视频播放器好难,虽然播放上没问题,但暂停还有通过拖动进度条来设置播放进度,这些都 ... 
- Android 关于ijkplayer
		基于ijkplayer封装支持简单界面UI定制的视频播放器 可以解析ts格式的so库 怎样编译出可以解析ts等格式的so库?就是编译的时候需要在哪一步修改配置? 一些电视台的m3u8 CCTV1综合, ... 
- 【Android】 修复ijkPlayer进行m3u8 hls流播放时seek进度条拖动不准确的问题
		项目中使用的播放器是ijkPlayer,发现播放切片特点的hls流(m3u8格式的视频)拖动seekBar的时候会莫名的跳转或者seek不到准确的位置,发现网友也遇到了同样的问题,ijk的开发者也说明 ... 
- ijkplayer demo效果图
		如下截图所示,用https://github.com/Bilibili/ijkplayer.git源码编译生成的ijkplayer app效果图,是这样的吗?有没有朋友指点下? 
- ijkplayer导入AS时,出现more than one library with package name错误
		最近刚接触ijkplayer ,在ubuntu 中将ijkplayer编译后,导入Windows中AS时,出现以下错误,目前初步定为为包重名,但具体原因未定为到,麻烦有遇到这方面的朋友,给指导下, 
- iOS----集成ijkplayer视频直播
		ijkplayer 是一款做视频直播的框架, 基于ffmpeg, 支持 Android 和 iOS, 网上也有很多集成说明, 但是个人觉得还是不够详细, 在这里详细的讲一下在 iOS 中如何集成ijk ... 
- B站开源ijkplayer 等多个项目
		弹幕视频网 Bilibili(B 站)近日在 GitHub 网站上建立了开源工作组(BOSTF),用以分享与维护自己的开源项目,其中包括 DanmakuFlameMaster(燃烧吧!烈焰弹幕使)与 ... 
- 1.iOS直播ijkplayer(第一周)
		准备工作: 1.使用的B站的开源框架ijkplayer ,下载地址: https://github.com/Bilibili/ijkplayer ijkplayer 是一个基于 ffplay 的轻量级 ... 
- iOS集成ijkplayer视频直播框架,遇到的bug和坑...
		p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 32.0px "Helvetica Neue"; color: #555555 } p. ... 
随机推荐
- Node.js模块 require和 exports
			https://liuzhichao.com/p/1669.html http://www.cnblogs.com/pigtail/archive/2013/01/14/2859555.html 
- Python_selenium中类函数模块的简单介绍
			Python_selenium中类函数模块的简单介绍 一.demo1.py的代码如下所示 #coding:utf-8 class ClassA(object): string = "这是一个 ... 
- Selenium Firefox 官方Webdriver -- Geckodriver 下载地址
			Selenium Firefox 官方Webdriver -- Geckodriver 下载地址 https://github.com/mozilla/geckodriver/releases 
- 巨蟒python全栈开发-第21天 继承
			一.今日主要内容 1.了解python2和python3类的区别 python2在2.2之前使用的是经典类,2.2之后,使用的是新式类 class Foo: pass class Foo(object ... 
- 修改/etc/hosts 云服务器 没有做外网转内网的优化
			[root@a mapReduceLog]# scp /data/visitlog/* root@d:/data/mapReduceVisitorLog/a/root@d's password:vis ... 
- jQuery实现图片预览
			摘自:http://www.cnblogs.com/leejersey/p/3660202.html JS代码: /* *名称:图片上传本地预览插件 v1.1 *作者:周祥 *时间:2013年11月2 ... 
- mysql什么情况下使用索引
			表的主关键字 自动建立唯一索引 如zl_yhjbqk(用户基本情况)中的hbs_bh(户标识编号) 表的字段唯一约束 ORACLE利用索引来保证数据的完整性 如lc_hj(流程环节)中的lc_bh+h ... 
- Django - 权限(4)- queryset、二级菜单的默认显示、动态显示按钮权限
			一.queryset Queryset是django中构建的一种数据结构,ORM查询集往往是queryset数据类型,我们来进一步了解一下queryset的特点. 1.可切片 使用Python 的切片 ... 
- (4.3)ODBC/OLE DB/ADO概念与使用情况
			一.ODBC ODBC的由来 1992年Microsoft和Sybase.Digital共同制定了ODBC标准接口,以单一的ODBC API来存取各种不同的数据库.随后ODBC便获得了许多数据库厂 ... 
- 006-HotSpot JVM收集器
			一.概述 1.1.图解 上面有7中收集器,分为两块,上面为新生代收集器,下面是老年代收集器.如果两个收集器之间存在连线,就说明它们可以搭配使用. JVM给出了3类选择:串行收集器.并行收集器.并发收集 ... 
