Vitamio API for Android.docx
《Vitamio API for Android.docx》由会员分享,可在线阅读,更多相关《Vitamio API for Android.docx(7页珍藏版)》请在冰豆网上搜索。
![Vitamio API for Android.docx](https://file1.bdocx.com/fileroot1/2023-1/26/ba7fa4cd-bf30-4b40-9350-204f7a3d7e42/ba7fa4cd-bf30-4b40-9350-204f7a3d7e421.gif)
VitamioAPIforAndroid
VitamioAPIforAndroid:
MediaPlayer
类概述
publicclassMediaPlayer
MediaPlayer可控制播放音乐/视频和网络流。
可以从VideoView找到使用这个类的方法。
这个类与android.media.MediaPlayer的作用大部分相同。
请参阅开发者指南音频和视频使用MediaPlayer。
常量
publicstaticfinalintMEDIA_ERROR_UNKNOWN
播放错误,未知错误。
常量值:
0
publicstaticfinalintMEDIA_ERROR_NOT_VALID_FOR_PROGRESSIVE_PLAYBACK
播放错误(一般视频播放比较慢或视频本身有问题会引发)。
常量值:
200
publicstaticfinalintMEDIA_INFO_VIDEO_TRACK_LAGGING
视频过于复杂,无法解码:
不能快速解码帧。
此时可能只能正常播放音频。
参见MediaPlayer.OnInfoListener。
常量值:
700
publicstaticfinalintMEDIA_INFO_BUFFERING_START
MediaPlayer暂停播放等待缓冲更多数据。
常量值:
701
publicstaticfinalintMEDIA_INFO_BUFFERING_END
MediaPlayer在缓冲完后继续播放。
常量值:
702
publicstaticfinalintMEDIA_INFO_NOT_SEEKABLE
媒体不支持Seek,例如直播流。
常量值:
801
publicstaticfinalintMEDIA_INFO_DOWNLOAD_RATE_CHANGED
av_read_frame()的速度(KB/s)。
常量值:
901
publicstaticfinalintVIDEOQUALITY_LOW
视频质量——流畅。
常量值:
-16
publicstaticfinalintVIDEOQUALITY_MEDIUM
视频质量——普通。
常量值:
0
publicstaticfinalintVIDEOQUALITY_HIGH
视频质量——高质。
常量值:
16
publicstaticfinalintSUBTITLE_INTERNAL
字幕显示来自内置字幕。
常量值:
0
publicstaticfinalintSUBTITLE_EXTERNAL
字幕显示来自外置字幕。
常量值:
1
publicstaticfinalString[]SUB_TYPES
Vitamio支持的外置字幕类型。
常量值:
{“.srt”,“.ssa”,“.smi”,“.txt”,“.sub”,“.ass”}
公共方法
publicstaticfinalbooleanisLibraryLoaded()
动态链接库(so)是否已经成功加载完成。
publicvoidsetDisplay(SurfaceHoldersh)
设置用于显示媒体视频的SurfaceHolder。
这个调用是可选的。
只显示音频而不显示视频时不调用这个方法(例如后台播放)。
参数
sh用户显示视频的SurfaceHolder
publicvoidsetDataSource(Contextcontext,Uriuri)
设置多媒体数据源,例如contextUri。
(支持raw资源访问,例如:
android.resource:
//com.your.package/R.raw.your_resource_id)
参数
context获取ContentResolver时要使用的Context
uri你要播放的uri
异常
IllegalArgumentException状态无效时引发(uri或context为空时引发)
publicnativevoidsetDataSource(Stringpath)
设置数据源(文件路径或http/rtsp/mmsURL)。
publicnativevoidsetDataSource(FileDescriptorfd)
设置数据源(FileDescriptor)。
调用者在调用后要自行关闭FileDescriptor,最安全的做法是一返回就马上关闭。
publicnativevoidprepare()
预处理播放器为播放做准备,方法是同步执行。
设置完数据源和显示的Surface后,你需要调用prepare()或prepareAsync()。
对于文件,你可以直到媒体播放器准备播放时再调用prepare。
publicnativevoidprepareAsync()
预处理播放器为播放做准备,方法是异步执行。
设置完数据源和显示的Surface后,你需要调用prepare()或prepareAsync()。
对于流,你应该调用prepareAsync(),立即返回,而不是阻塞,直到足够的数据被缓冲。
publicvoidstart()
开始或继续播放。
如果此前已暂停播放,那么就从暂停的地方播放。
如果已经停止播放或还未开始播放,播放将从头开始。
publicvoidstop()
与pause()相同。
publicvoidpause()
暂停播放。
调用start()恢复。
publicvoidsetWakeMode(Contextcontext,intmode)
设置MediaPlayer的底层电源管理。
可以在MediaPlayer没有通过SurfaceHolder设置setDisplay播放时使用,从而使用高级别的setScreenOnWhilePlaying特性。
本方法在MediaPlayer访问低级别电源管理控制设备电源时使用。
参数是一个android.os.PowerManager唤醒组合标识。
使用这个方法需要WAKE_LOCK权限。
默认情况下不使用以保持设备唤醒播放。
参数
context
mode设置PowerManger电源/锁定模式
publicvoidsetScreenOnWhilePlaying(booleanscreenOn)
控制是否使用附加SurfaceHolder保持屏幕高亮持续播放视频。
本方法可能优于使用setWakeMode,因为它不需要应用程序访问底层唤醒锁的权限。
参数
screenOn设置true将保持屏幕高亮,反之允许它关闭。
publicnativeintgetVideoWidth()
获取视频宽度。
返回值
返回视频的宽度,没有视频或宽度尚未确定时返回0。
可以通过注册OnVideoSizeChangedListener当宽度有效时获得一个通知。
publicnativeintgetVideoHeight()
获取视频高度。
返回值
返回视频的高度,没有视频或高度尚未确定时返回0。
可以通过注册OnVideoSizeChangedListener当高度有效时获得一个通知。
publicnativebooleanisPlaying()
检测MediaPlayer是否正在播放。
publicnativevoidseekTo(longmsec)
设置到指定时间位置播放。
参数
msec从开始位置到msec的偏移量(以毫秒为单位)
异常
IllegalStateException内部播放引擎未初始化引发
publicnativelonggetCurrentPosition()
获取当前播放位置。
publicnativeBitmapgetCurrentFrame()
获取当前视频帧。
(可用于截图)
publicnativelonggetDuration()
获取多媒体播放持续时间。
publicvoidrelease()
释放与MediaPlayer相关的资源。
当你使用完MediaPlayer完后调用此方法是一个好的编程习惯。
publicvoidreset()
复位(reset)MediaPlayer至未初始化状态。
调用此方法后,你需要再次设置数据源,并通过prepare()来初始化。
publicnativevoidsetVolume(floatleftVolume,floatrightVolume))
设置音量。
(范围0.0~1.0之间)
publicvoidsetOnPreparedListener(OnPreparedListenerlistener))
注册一个回调函数,在视频预处理完成后调用。
publicvoidsetOnCompletionListener(OnCompletionListenerl)
注册一个回调函数,视频播放完成后调用。
publicvoidsetOnErrorListener(OnErrorListenerl)
注册一个回调函数,在异步操作调用过程中发生错误时调用。
例如视频打开失败。
publicvoidsetOnBufferingUpdateListener(OnBufferingUpdateListenerl)
注册一个回调函数,在网络视频流缓冲变化时调用。
publicvoidsetOnSeekCompleteListener(OnSeekCompleteListenerl)
注册一个回调函数,在seek操作完成后调用。
publicvoidsetOnVideoSizeChangedListener(OnVideoSizeChangedListenerlistener)
注册一个回调函数,在视频大小已知或更新后调用。
publicvoidsetOnSubtitleUpdateListener(OnSubtitleUpdateListenerl)
注册一个回调函数,在字幕需要显示时调用。
publicvoidsetOnInfoListener(OnInfoListenerl)
注册一个回调函数,在有警告或错误信息时调用。
例如:
开始缓冲、缓冲结束、下载速度变化。
publicvoidreleaseDisplay()
在播放音频的时候调用这个有效果。
publicnativefloatgetVideoAspectRatio()
获取视频宽高比例。
返回值
返回视频的宽高比。
没有视频或者宽高不正确返回0。
参见VideoView.setVideoLayout。
publicnativevoidsetVideoQuality(intquality)
设置视频质量。
如果播放延迟比较严重,你可以尝试使用VIDEOQUALITY_LOW(流畅),默认VIDEOQUALITY_LOW(流畅)。
参数
quality参见MediaPlayer的常量:
VIDEOQUALITY_LOW(流畅)、VIDEOQUALITY_MEDIUM(普通)、VIDEOQUALITY_HIGH(高质)。
publicnativevoidsetDeinterlace(booleandeinterlace)
设置视频反交错。
publicnativevoidsetBufferSize(intbufSize)
设置视频缓冲大小(默认1024KB)单位Byte。
publicnativebooleanisBuffering()
检测是否缓冲完毕。
publicnativeintgetBufferProgress()
参见OnBufferingUpdateListener。
publicnativevoidsetMetaEncoding(Stringencoding)
设置元数据编码。
例如:
UTF-8
publicnativeStringgetMetaEncoding()
获取元数据编码。
publicHashMapgetAudioTrackMap(Stringencoding)
获取视频中嵌入的音轨。
例如:
English
publicnativeintgetAudioTrack()
设置播放音轨编号。
publicnativevoidsetAudioTrack(intaudioIndex)
设置音轨编号,必须使用getAudioTrackMap的返回值。
publicvoidsetInitialAudioTrack(intaudioIndex)
设置初始化音轨。
publicvoidsetInitialSubTrack(intsubIndex)
设置初始化字幕。
publicnativevoidsetSubShown(booleanshown)
设置是否显示字幕。
参数
showntrue表示显示字幕
publicnativevoidsetSubEncoding(Stringencoding)
设置字幕编码。
参数
encoding字幕编码。
如果为null将自动检测。
publicnativeintgetSubLocation()
获取字幕位置类型。
0为内嵌字幕,1为外挂字幕。
publicnativevoidsetSubPath(StringsubPath)
设置外挂字幕路径。
必须是本地文件路径。
publicnativeStringgetSubPath()
获取外挂字幕路径。
publicnativevoidsetSubTrack(inttrackId)
设置字幕编号。
必须是getSubTrackMap的返回值。
publicnativeintgetSubTrack()
获取字幕编号。
publicHashMapgetSubTrackMap(Stringencoding)
获取视频内嵌字幕集合。
参数
encoding格式化字符串编码。
如果为null将自动检测。
返回值
返回字幕名称和字幕编号组成的Map。
受保护方法
protectedvoidfinalize()
调用了native_finalize。
MediaPlayer内部接口
publicinterfaceOnBufferingUpdateListener
voidonBufferingUpdate(MediaPlayermp,intpercent)
更新流媒体缓存状态。
参数
mp要更新的MediaPlayer
percent已缓冲的百分比数(0~100)
publicinterfaceOnErrorListener
booleanonError(MediaPlayermp,intwhat,intextra)
错误信息。
参数
mp错误相关的MediaPlayer
what错误类型,参见MEDIA_ERROR_UNKNOWN、MEDIA_ERROR_NOT_VALID_FOR_PROGRESSIVE_PLAYBACK
extra额外具体的错误code。
通常依赖于实现。
返回值
如果处理了错误返回true,否则返回false。
返回false或没有设置OnErrorListener将引发OnCompletionListener被调用。
publicinterfaceOnInfoListener
booleanonInfo(MediaPlayermp,intwhat,intextra)
信息或警告。
参数
mp信息相关的MediaPlayer
what信息或警告类型,参见MEDIA_INFO_VIDEO_TRACK_LAGGING、MEDIA_INFO_BUFFERING_START、MEDIA_INFO_BUFFERING_END、MEDIA_INFO_NOT_SEEKABLE、MEDIA_INFO_DOWNLOAD_RATE_CHANGED
extra额外具体的信息code。
通常依赖于实现。
返回值
如果处理了错误返回true,否则返回false。
返回false或没有设置OnInfoListener将丢弃信息或警告。
publicinterfaceOnSubtitleUpdateListener
publicvoidonSubtitleUpdate(Stringtext)
需要显示文字字幕。
publicvoidonSubtitleUpdate(byte[]pixels,intwidth,intheight)
需要显示图片字幕。
参数
pixels图片字幕像素
width图片字幕宽度
height图片字幕高度