zoukankan      html  css  js  c++  java
  • 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 + 1 >= mMediaBytes.length){
                return -1;
            }
    
            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

     

  • 相关阅读:
    oracle 锁表查看与解锁
    oracle 监视索引是否使用
    oracle 查看数据库版本
    mybatis 中文做参数报错
    windows mysql绿色版配置
    maven使用本地jar包
    Java 使用Jedis连接Redis数据库(-)
    Linux 安装redis
    ELK之在CentOS7.5上使用rpm包安装配置ELK7版本
    Ubuntu-18.04更改安装源为国内源
  • 原文地址:https://www.cnblogs.com/pengmn/p/10064517.html
Copyright © 2011-2022 走看看