【VLC-Android】LibVLC API简介(相当于VLC的MediaPlayer)
前言
学新东西API很重要,这里抛砖引玉整理了一下,欢迎反馈!
正文
vlc-android的LibVLC相当于MediaPlayer对象,这里列一下对应关系。
1、public void playMRL(String mrl)
对应MediaPlayer的setDataSource,注意不要转成Uri再toString,否则无法播放。用法如下:
playMRL("http://live.3gv.ifeng.com/zixun.m3u8")
2、 public native void play()
对应MediaPlayer的start(),开始播放。
3、 public native void pause()
对应MediaPlayer的pause(),暂停播放。
4、public native void stop()
对应MediaPlayer的stop(),停止播放。
5、public native boolean isPlaying()
对应 MediaPlayer的isPlaying,是否正在播放。
6、public native int getPlayerState();
获取播放器的状态。
7、public native int getVolume()
获取音量。
8、public native int setVolume(int volume)
设置音量。(取值范围和MediaPlayer不一样)
9、public native long getLength()
对应 MediaPlayer的getDuration。获取视频的长度,以毫秒为单位。
10、public native long getTime()
返回视频当前时间,以毫秒为单位。
11、public native long setTime(long time)
设置视频当前时间,以毫秒为单位。
12、public native float getPosition()
对应MediaPlayer的getCurrentPosition。设置视频当前位置。
13、public native void setPosition(float pos)
对应 MediaPlayer的seekTo。设置视频当前位置。
14、public native void setRate(float rate)
设置播放速度(可实现快进快退)1是正常速度,2是两倍速(我猜可能和Vitamio一样取值是0.5 ~ 2.0) ,对应的有getRate方法。
15、public native boolean isSeekable()
是否支持seek(拖拽)。比如直播就不支持seek操作
16、public void destroy()
对应 MediaPlayer的release,销毁LibVLC实例。
17、public byte[] getThumbnail(String mrl, int i_width, int i_height)
获取视频的截图,rgba的byte数组。
18、public void setHardwareAcceleration(int hardwareAcceleration)
设置硬解编码,参考LibVLC.HW_ACCELERATION_FULL等参数
19、public void setNetworkCaching(int networkcaching)
设置网络缓冲。(还不知道怎么用,有看到设置值为3000、6000)
20、public void setFrameSkip(boolean frameskip)
(暂时也不知道有啥用,好像可以提高性能,帧解码出错以后直接跳过?)
结束
虽然用播放器很长时间了,很多基础性和原理性的东西都还不懂,还要加强学习,比如上面的frame skip就不知道是啥。