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

     

  • 相关阅读:
    招行面试
    今日头条面试[教育岗]
    四方精创 面试
    ArrayList 源码
    redis缓存,穿透,击穿,雪崩
    hashMap
    集合整理
    阿里CBU技术部一面
    网安面试
    php递归获取顶级父类id
  • 原文地址:https://www.cnblogs.com/pengmn/p/10064517.html
Copyright © 2011-2022 走看看