wlmedia播放器集成(3)— 常用api

前言:

由于jcenter不久将关闭,所以 wlmedia 项目已迁移到 jitpack

GitHub地址:https://github.com/wanliyang1990/wlmedia


APIS:

  • WlMedia
public void setSource(String source) //设置数据源
public void prepared() //异步准备
public void next() //切换下一首
public void start() //异步准备好后,开始播放
public void pause() //暂停
public void resume() //继续播放(相对于暂停)
public void stop() //停止播放(不回收surface资源)
public void release() //停止播放并回收surface资源

public void setVolume(double volume) //设置音量(0~200 100为原始大小)
public void setUseSoundTouch(boolean useSoundTouch) //是否使用SoundTouch变速变调(默认:false)
public void setSpeed(double speed) //设置播放速度(0.5~4.0 1.0为正常速度)
public void setPitch(double pitch) //设置音调(0.5~4.0 1.0为正常音调)
public void seek(double seekTime) //指定seek播放位置(视频为最近的关键帧)单位s
public void seekStart() //暂停播放时间回调
public void seekEnd() //回复播放时间回调
public double getNowTime() //获取当前播放时间(单位s)
public double getDuration() //获取时长,直播为-1
public void setTimeOut(int timeOut) //设置超时时间
public void setLoopPlay(boolean loopPlay) //循环播放
public void takePicture() //截屏
public int getVideoWidth() //获取视频宽
public int getVideoHeight() //获取视频高
public boolean isPlaying() //是否在播放中
public void setSmoothTime(boolean smooth) //是否回调每一帧时间戳
public void setCallBackPcmData(boolean callBackPcmData) //是否回调pcm数据
public int getSurfaceWidth() //获取surface宽度
public int getSurfaceHeight() //获取surface高度

public void setClearLastPicture(boolean clearLastPicture) //播放结束是否清屏
public void setVideoClearColor(float rgba_r, float rgba_g, float rgba_b, float rgba_a) //设置清屏颜色
public void setFshader(String fShader) //自定义视频滤镜
public void changeFilter() //使滤镜生效
public void scaleVideo(int w, int h) //按比例缩放视频
public void setBufferSize(WlBufferType bufferType, double bufferValue) //设置缓存策略(枚举:时间、内存大小、队列数量)


public void setSourceType(WlSourceType sourceType) //设置数据源类型(枚举:url、加密file、byte[])
public void setPlayModel(WlPlayModel playModel) //设置播放模式(枚举:只播放音频、只播放视频、同时播放音视频)
public void setCodecType(WlCodecType codecType) //设置解码类型(枚举:硬解优先,使用软解)
public void setSampleRate(WlSampleRate sampleRate) //设置音频播放采样率(枚举:如:8000、...、44100、48000)
public void setAlphaVideoType(WlAlphaVideoType alphaVideoType) //播放透明视频(枚举:左右透明通道)

public WlMediaInfoBean[] getAudioTracks() //获取所有音频轨道信息
public WlMediaInfoBean[] getVideoTracks() //获取所有视频轨道信息
public WlMediaInfoBean[] getSubtitleTracks() //获取所有字幕轨道信息
public void setAudioTrack(int trackIndex) //设置当前播放音频轨道
public void setSubtitleTrack(int trackIndex) //设置当前播放字幕轨道

public void setFFOptions(String key, String value) //设置FFmpeg参数(如:setFFOptions("rtsp_transport", "tcp"))


public void setOnMediaInfoListener(WlOnMediaInfoListener onMediaInfoListener) //必须回调
    void onPrepared(); //异步准备好
    void onError(int code, String msg); //错误信息
    void onComplete(WlComplete type, String msg); //播放完成
    void onTimeInfo(double currentTime, double bufferTime); //时间回调
    void onSeekFinish(); //seek完成
    void onLoopPlay(int loopCount); //循环播放次数
    void onLoad(boolean load); //加载回调接口
    byte[] decryptBuffer(byte[] encryptBuffer); //加密数据解密回调
    byte[] readBuffer(int read_size); //播放byte[]类型数据入口
    void onPause(boolean pause); //暂停回调


public void setOnTakePictureListener(WlOnTakePictureListener onTakePictureListener) //截图bitmap回调
    void takePicture(Bitmap bitmap); //截图回调

public void setOnPcmDataListener(WlOnPcmDataListener onPcmDataListener) //pcm数据回调
    void onPcmInfo(int bit, int channel, int samplerate); //回调pcm信息
    void onPcmData(int size, byte[] data, double db); //回调pcm数据 注:此接口和音频播放位于同一线程,尽量不要做耗时操作,如果需要耗时操作,建议使用队列缓存后处理!
  • WlSurfaceView、WlTextureView
public void setWlMedia(WlMedia wlMedia) //设置播放器
public void enableAlphaVideo(boolean enable) //是否启动透明视频播放

public void setOnVideoViewListener(WlOnVideoViewListener onVideoViewListener) //surfaceview事件
    void initSuccess(); //surface初始化完成回调
    void onSurfaceChange(int width, int height); //surface大小改变
    void moveX(double value, int move_type); //左右滑动
    void onSingleClick(); //单击
    void onDoubleClick(); //双击
    void moveLeft(double value, int move_type); //左边上下滑动
    void moveRight(double value, int move_type); //右边上下滑动
  • WlMediaUtil
public void setSource(String source) //设置数据源
public int openSource() //打开数据源
public WlMediaInfoBean[] getMediaInfo() //获取所有轨道基础信息
public int openCodec() //打开解码器 
public Bitmap getVideoImg(double time, boolean keyFrame) //获取指定帧
public void release() //销毁资源

以上就是wlmedia中常用api

源码地址:传送门

 

 

 

 

你可能感兴趣的:(实用功能,开源项目,FFmpeg,android,wlmedia,android音视频,android播放器)