Android vitamio框架多媒体框架模拟器可以安装插件,手机上出错

2383人阅读
安卓技术 - 开源框架(30)
作者:郭嘉
一 Vitamio无法使用的错误
1.1 SO库相关问题
Error loading libs
java.lang.UnsatisfiedLinkError: Library …
libstlport_shared.so not found
________________________________________
java.lang.UnsatisfiedLinkError: Couldn't load vinit: findLibrary returned null
________________________________________
java.lang.UnsatisfiedLinkError: unloadOMX_native
________________________________________
Native libs libffmpeg.so not exists!
凡是此类错误,一般只有以下几种情况:
Vitamio只支持ARMv6+以上的CPU,如果报以上错误,说明不支持你的机器。(注意:模拟器要使用4.0以上)
没有调用检测解码包的代码(即没有解压解码包,Vitamio会根据当前CPU的类型自动解压相应平台的库),使用方法参照DEMO:
if (!LibsChecker.checkVitamioLibs(this))
注意:Vitamio官方给出的Demo中res/raw目录下有个libarm.so也要拷贝到你的工程中,如下图所示:
没有以Library的方式使用Vitamio,漏拷贝了VitamioBundle里面的类库或代码,例如libvinit.so、libarm.so等。
如果您有自己的so,请参考Vitamio的libs文件夹(armeabi、armeabi-v7a、x86)将so拷贝、新建相应的文件夹。
如果您是从旧版本Vitamio升级过来,尤其是早期以集成方式使用的,而现在又以Library方式使用,请删除相关的类和文件(res/raw/libarm.so、libs下面的libvinit.so、io.vov.vitamio下面相应的类文件),最后改一下当前项目的versionCode(Vitamio根据当前项目的版本自动重新解压升级)。最后可以尝试卸载之前的app重新安装。强烈建议下载最新版本,先跑通官网例子,没有问题再自己集成,最后搞不定还可以直接在官网例子上修改。
极少数几款设备,比如华为S8600、三星GT-S5830(CPU是ARMv6+,但是无法使用)。
二 视频无法播放的错误
2.1 avformat_open_input: I/O error
确保视频没有问题。先拿VLC、系统自带的播放器或者PC上的播放器,测试一下链接,确保视频是可以播放的。
确保调用方法没有问题。参考官方的例子,先用官网例子测试一个可以播放的链接,然后再不改动其他的代码情况下仅更改播放地址进行测试。
确保测试环境一致。比如拿能上网的PC测试完后拿无法上网的手机测试,那肯定不行。
前面都确保没有问题后最后使用VPlayer来进行测试,如果VPlayer能够播放,那Vitamio一定能播放,否则只有一种情况:不支持!
2.2 java.io.FileNotFoundException: No content provider
这个不是错误,是正常的处理。现在播放视频是这样做的:先把 URL 当做一个 ContentProvider 来打开,如果打不开,就直接当做 URL 来打开
java.lang.SecurityException:Not allowed to bind to service Intent … VitamioService
如果手机上安装了VPlayer并且使用了旧版本(3.0以前)的Vitamio,可能会报这个错,可以简单理解为冲突,所以后续VitamioService这个类在3.0以后就没有了,还有相关的MediaScannerService也没有了。
2.3 java.lang.NoClassDefFoundError: io.vov.vitamio.R$raw
Vitamio 3.0默认以Android Library的方式使用,对raw的引用使用的io.vov.vitamio.R,如果不是以这种方式使用比如简单的拷贝合并就报这个错。建议以Android Library方式使用,便于后续升级。如果仍然坚持要拷贝合并,可以通过在本工程新建包名io.vov.vitamio,新建R类来实现:
package io.vov.
public class R {
public static final class raw {
public static final int libarm = com.nmbb.oplayer.R.raw.
public static final int pub = com.nmbb.oplayer.R.raw.
2.4 Fatal signal 11 (SIGSEGV) at 0xb77ea280 (code=1), thread 1243 (ov.vitamio.demo)
类似Fatal signal崩溃的问题,一般是MediaPlayer的生命周期没有使用正确。比如还没有prepare就去调用isPlaying等其他方法都会导致这个问题,使用系统的MediaPlayer也会抛出IllegalStateException的异常。建议去Android官网看文档:。尤其是MediaPlayer的状态图。
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:237955次
积分:5114
积分:5114
排名:第5216名
原创:272篇
评论:49条
阅读:1797
(4)(8)(3)(1)(8)(3)(25)(73)(63)(39)(39)(9)Android应用源码使用Vitamio框架的网络在线电视直播
今天是&&日&&&&&&星期一
您还没有登录,&&&&
当前位置:
Android应用源码使用Vitamio框架的网络在线电视直播
更新时间:日
浏览次数:14440 次
下载次数:778 次
项目来源:暂无记录
本项目是一个基于安卓的电视直播项目源码,使用的是Vitamio提供的框架,Vitamio是一个多媒体的框架,支持所有的Android设备和IOS设备,国内的酷六和CCTV的客户端都使用了这个框架。Vitamio与Android默认的MediaPlayer工作方式相似,但包含更加强大的功能。本例子目前使用的218.24.47.44
提供的视频源,如果哪一天你发现本例子不能播放了那就是视频源挂了,目前可以直播几十个台。需要的朋友可以下载研究一下,更多关于Vitamio的信息请访问vitamio.org
文件夹 PATH 列表
卷序列号为 CD2:D088
.classpath
AndroidManifest.xml
ic_launcher-web.png
文件列表生成工具.bat
proguard-project.txt
project.properties
更多源码打包下载.url
本源码使用帮助.txt
目录列表.txt
├─.settings
org.eclipse.core.resources.prefs
├─assets
└─mealdemo
BuildConfig.java
android-support-v4.jar
vitamio.jar
├─armeabi
libvinit.so
└─armeabi-v7a
libvinit.so
├─drawable
alphabet_scroller_bg.xml
home_btn_bg.xml
mediacontroller_pause_button.xml
mediacontroller_play_button.xml
mediacontroller_seekbar.xml
mediacontroller_seekbar_thumb.xml
├─drawable-hdpi
arrow_right.png
blackscreen.png
btn_normal_2.png
contact_list_scroll_normal.png
contact_list_scroll_pressed.png
default_thumbnail.png
fast_scroller_overlay.png
home_bg_checked.png
home_bg_normal.png
ic_line.png
in_bubble.9.png
mediacontroller_bg.png
mediacontroller_pause01.png
mediacontroller_pause02.png
mediacontroller_play01.png
mediacontroller_play02.png
mediacontroller_seekbar01.png
mediacontroller_seekbar02.png
sd_bar_bg.9.png
video_back.png
video_brightness_bg.png
video_file.png
video_num_bg.png
video_num_front.png
video_online.png
video_volumn_bg.png
├─drawable-ldpi
├─drawable-mdpi
ic_launcher.png
├─drawable-xhdpi
ic_launcher.png
├─drawable-xxhdpi
ic_launcher.png
├─layout
list_itme.xml
mediacontroller.xml
videoview.xml
├─values
colors.xml
strings.xml
styles.xml
├─values-v11
styles.xml
└─values-v14
styles.xml
└─mealdemo
Adapter.java
FileUtils.java
InitActivity.java
LibsChecker.java
Logger.java
Mainactivity.java
MediaController.java
OPlayerApplication.java
OutlineTextView.java
StringUtils.java
VideoPlayerActivity.java
VideoView.java
ViewHolder.java
└─vitamio
您必须才能评论.
这是黑马 12年培训的例子 还
视频怎么不能看啊
有没有支持64-bit的lib
可能是视频源挂了
点击列表时报错Activity
&&常见问题
&&充值交易
&&快捷通道
&&用户中心
&&联系我们
微信:javaapkwx
· 鲁ICP备号-1· Powered by · Theme by JavaApkTM
· .22 queries in 0.328 seconds图像和流媒体(142)
Vitamio 是一款 Android 与 iOS 平台上的全能多媒体开发框架,全面支持硬件解码与 GPU 渲染。
Vitamio 功能强大,能够流畅播放720P甚至1080P高清MKV,FLV,MP4,MOV,TS,RMVB等常见格式的视频,还可以在 Android 与 iOS 上跨平台支持 MMS, RTSP, RTMP, HLS(m3u8) 等常见的多种视频流媒体协议,包括点播与直播。
1.Vitamio的下载
官方下载:
官方文档:
2.Vitamio的VideoView控件
VideoView用于播放视频文件,可以加载各种来源的图像(如资源或ContentProvider),注意计算视频尺寸,以便在任意布局管理器中使用,它还提供了诸如缩放等显示选项。
VideoView也提供封装了许多MediaPlayer的方法,例如getVideoWidth、setSubShown。
3.Vitamio的用法
(1)引入vitamio框架到 Android Studio 或者 Eclipse
(2)在布局中定义VideoView
&io.vov.vitamio.widget.VideoView
android:id=&@+id/vv&
android:layout_width=&match_parent&
android:layout_height=&match_parent& /&
(3)MainActivity中调用
// 插件vitamio框架检查是否可用
if (!LibsChecker.checkVitamioLibs(this)) {
final VideoView vv = (VideoView) findViewById(R.id.vv);
vv.setVideoPath(&http://192.168.1.20:8080/movie.mp4&); //设置播放路径
vv.setOnPreparedListener(new OnPreparedListener() {
public void onPrepared(MediaPlayer mp) {
vv.start();
// 设置video的控制器
vv.setMediaController(new MediaController(this));
(4)使用Vitamio一定要在清单文件额外初始化InitActivity
&!-- 初始化InitActivity,固定写法 --&
&activity android:name=&io.vov.vitamio.activity.InitActivity&&&/activity&
注意:InitActivity不要和MainActivity混淆。
4.Vitamio框架的原理
(1)音视频解码 原理:
基本上都使用了开源项目FFmpeg(C语言开发的),包括windows平台的很多播放器都用到了。
FFmpeg源码下载地址:
(2)Vitamio也是使用了FFmpeg开源项目。
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:2692660次
积分:23403
积分:23403
排名:第268名
原创:75篇
转载:1103篇
评论:301条
(11)(17)(6)(2)(9)(22)(18)(25)(67)(31)(32)(27)(56)(13)(12)(8)(33)(32)(36)(12)(34)(42)(30)(17)(11)(3)(5)(11)(18)(17)(13)(17)(7)(6)(27)(19)(47)(1)(19)(11)(2)(1)(25)(20)(10)(6)(2)(8)(3)(10)(9)(6)(4)(15)(7)(2)(7)(8)(50)(14)(11)(26)(20)(4)(1)(5)(14)(12)(4)(4)(3)(2)(4)(2)(4)(1)(1)(1)(3)(2)(11)(3)(8)(15)(2)(1)Android--使用开源vitamio做万能视频播放器
Vitamio 是什么?
Vitamio 是一款 Android 与 iOS 平台上的全能多媒体开发框架,全面支持硬件解码与 GPU 渲染。Vitamio 凭借其简洁易用的 API 接口赢得了全球众多开发者的青睐。到目前,全球已经有超过 一万 种应用在使用 Vitamio,覆盖用户超过 5亿 。
Vitamio 能够流畅播放720P甚至1080P高清MKV,FLV,MP4,MOV,TS,RMVB等常见格式的视频,还可以在
上跨平台支持 MMS, RTSP, RTMP, HLS(m3u8) 等常见的多种视频流媒体协议,包括点播与直播。
资源下载:
Vitamio 支持各种常见的流媒体协议,可以点播或者直播音频和视频,例如如下常见协议均能无缝支持:
RTSP (RTP, SDP), RTMP
HTTP progressive streaming
HLS - HTTP live streaming (M3U8)
Vitamio 使用了
做为媒体解析器和最主要的解码器,同时开发了针对不同移动平台的硬解码方案,能够完美支持 H.264/AVC、H.263、 MPEG4 等常见的视频编码,覆盖上百种多媒体格式。下表只是一些最常见的视频格式支持,除特殊标明,全部支持硬件加速:
WMV (一般只有软解码)
RMVB (只有软解码)
Vitamio 对字幕的支持很优秀,包括各种常见外挂字幕与很多视频格式的内嵌字幕,同多个字幕等特性的支持也非常完善。比如:
SubRip(.srt)
Sub Station Alpha(.ssa) / Advanced Sub Station Alpha(.ass)
SAMI(.smi/.sami)
MicroDVD(.sub/.txt)
SubViewer2.0(.sub)
MPL2(.mpl/.txt)
Matroska (.mkv) 内置字幕
除了上面列出的常见功能之外,Vitamio 还做了相当多人性化的工作:
多音轨与字幕支持
细致的 CPU 与 GPU 优化
支持手机到平板各种设备
流媒体播放缓冲支持
播放画面比例大小随手调节
自动文字编码检测,拒绝乱码
还有更多新特性没有被列出,请参考开发文档。
1、导入。下载回来后大家可能发现没有.project工程文件,可以通过File -& Import -& Android -& Existing Android Code Into Workspace来导入工程,然后改一下工程名称即可。
2、将VitamioBundle工程作为Android Library引入Demo工程使用即可。
如果是Windows用户,请将VitamioBundle与Demo工程放在同一个文件夹下,否则添加Android Library可能失败,其他问题一般clean一下重新编译一下就好了。其他问题请参考错误大全。
Vitamio 4.0 changed API for Android
getMetadata()
getTrackInfo()
setPlaybackSpeed(&span
class="predefined-type"&float&/span&
setSurface(Surface
setDataSource(Context
context, Uri uri, String headers)
setAudioAmplify(&span
class="predefined-type"&float&/span&
Changed API
OnSubtitleListener
-& OnTimedTextListener
setSubtitleShown
-& setTimedTextShown
setSubtitleShown
-& setTimedTextEncoding
setAudioTrack
-& selectTrack()
Vitamio API for Android : MediaPlayer
public class MediaPlayer
MediaPlayer可控制播放音乐/视频和网络流。可以从VideoView找到使用这个类的方法。
这个类与android.media.MediaPlayer的作用大部分相同。请参阅开发者指南音频和视频使用MediaPlayer。
public static final int MEDIA_ERROR_UNKNOWN
播放错误,未知错误。
public static final int MEDIA_ERROR_NOT_VALID_FOR_PROGRESSIVE_PLAYBACK
播放错误(一般视频播放比较慢或视频本身有问题会引发)。
常量值:200
public static final int MEDIA_INFO_VIDEO_TRACK_LAGGING
视频过于复杂,无法解码:不能快速解码帧。此时可能只能正常播放音频。参见MediaPlayer.OnInfoListener。
常量值:700
public static final int MEDIA_INFO_BUFFERING_START
MediaPlayer暂停播放等待缓冲更多数据。
常量值:701
public static final int MEDIA_INFO_BUFFERING_END
MediaPlayer在缓冲完后继续播放。
常量值:702
public static final int MEDIA_INFO_NOT_SEEKABLE
媒体不支持Seek,例如直播流。
常量值:801
public static final int MEDIA_INFO_DOWNLOAD_RATE_CHANGED
av_read_frame()的速度(KB/s)。
常量值:901
public static final int VIDEOQUALITY_LOW
视频质量——流畅。
常量值:-16
public static final int VIDEOQUALITY_MEDIUM
视频质量——普通。
public static final int VIDEOQUALITY_HIGH
视频质量——高质。
常量值:16
public static final int SUBTITLE_INTERNAL
字幕显示来自内置字幕。
public static final int SUBTITLE_EXTERNAL
字幕显示来自外置字幕。
public static final String[] SUB_TYPES
Vitamio支持的外置字幕类型。
常量值:{ “.srt”, “.ssa”, “.smi”, “.txt”, “.sub”, “.ass” }
public static final boolean isLibraryLoaded()
动态链接库(so)是否已经成功加载完成。
public void setDisplay(SurfaceHolder sh)
设置用于显示媒体视频的SurfaceHolder。这个调用是可选的。只显示音频而不显示视频时不调用这个方法(例如后台播放)。
sh 用户显示视频的SurfaceHolder
public void setDataSource(Context context, Uri uri)
设置多媒体数据源,例如context Uri。(支持raw资源访问,例如:android.resource://com.your.package/R.raw.your_resource_id)
context 获取ContentResolver时要使用的Context
uri 你要播放的uri
IllegalArgumentException 状态无效时引发(uri或context为空时引发)
public native void setDataSource(String path)
设置数据源(文件路径或http/rtsp/mms URL)。
public native void setDataSource(FileDescriptor fd)
设置数据源(FileDescriptor)。调用者在调用后要自行关闭FileDescriptor,最安全的做法是一返回就马上关闭。
public native void prepare()
预处理播放器为播放做准备,方法是同步执行。
设置完数据源和显示的Surface后,你需要调用prepare()或prepareAsync()。对于文件,你可以直到媒体播放器准备播放时再调用prepare。
public native void prepareAsync()
预处理播放器为播放做准备,方法是异步执行。
设置完数据源和显示的Surface后,你需要调用prepare()或prepareAsync()。对于流,你应该调用prepareAsync(),立即返回,而不是阻塞,直到足够的数据被缓冲。
public void start()
开始或继续播放。如果此前已暂停播放,那么就从暂停的地方播放。如果已经停止播放或还未开始播放,播放将从头开始。
public void stop()
与pause()相同。
public void pause()
暂停播放。调用start()恢复。
public void setWakeMode(Context context, int mode)
设置MediaPlayer的底层电源管理。可以在MediaPlayer没有通过SurfaceHolder 设置setDisplay播放时使用,从而使用高级别的setScreenOnWhilePlaying特性。
本方法在MediaPlayer访问低级别电源管理控制设备电源时使用。参数是一个android.os.PowerManager唤醒组合标识。使用这个方法需要WAKE_LOCK权限。默认情况下不使用以保持设备唤醒播放。
mode 设置PowerManger电源/锁定模式
public void setScreenOnWhilePlaying(boolean screenOn)
控制是否使用附加SurfaceHolder保持屏幕高亮持续播放视频。本方法可能优于使用setWakeMode,因为它不需要应用程序访问底层唤醒锁的权限。
screenOn 设置true将保持屏幕高亮,反之允许它关闭。
public native int getVideoWidth()
获取视频宽度。
返回视频的宽度,没有视频或宽度尚未确定时返回0。可以通过注册OnVideoSizeChangedListener当宽度有效时获得一个通知。
public native int getVideoHeight()
获取视频高度。
返回视频的高度,没有视频或高度尚未确定时返回0。可以通过注册OnVideoSizeChangedListener当高度有效时获得一个通知。
public native boolean isPlaying()
检测MediaPlayer是否正在播放。
public native void seekTo(long msec)
设置到指定时间位置播放。
msec 从开始位置到msec的偏移量(以毫秒为单位)
IllegalStateException 内部播放引擎未初始化引发
public native long getCurrentPosition()
获取当前播放位置。
public native Bitmap getCurrentFrame()
获取当前视频帧。(可用于截图)
public native long getDuration()
获取多媒体播放持续时间。
public void release()
释放与MediaPlayer相关的资源。当你使用完MediaPlayer完后调用此方法是一个好的编程习惯。
public void reset()
复位(reset)MediaPlayer至未初始化状态。调用此方法后,你需要再次设置数据源,并通过prepare()来初始化。
public native void setVolume(float leftVolume, float rightVolume))
设置音量。(范围0.0~1.0之间)
public void setOnPreparedListener(OnPreparedListener listener))
注册一个回调函数,在视频预处理完成后调用。
public void setOnCompletionListener(OnCompletionListener l)
注册一个回调函数,视频播放完成后调用。
public void setOnErrorListener(OnErrorListener l)
注册一个回调函数,在异步操作调用过程中发生错误时调用。例如视频打开失败。
public void setOnBufferingUpdateListener(OnBufferingUpdateListener l)
注册一个回调函数,在网络视频流缓冲变化时调用。
public void setOnSeekCompleteListener(OnSeekCompleteListener l)
注册一个回调函数,在seek操作完成后调用。
public void setOnVideoSizeChangedListener(OnVideoSizeChangedListener listener)
注册一个回调函数,在视频大小已知或更新后调用。
public void setOnSubtitleUpdateListener(OnSubtitleUpdateListener l)
注册一个回调函数,在字幕需要显示时调用。
public void setOnInfoListener(OnInfoListener l)
注册一个回调函数,在有警告或错误信息时调用。例如:开始缓冲、缓冲结束、下载速度变化。
public void releaseDisplay()
在播放音频的时候调用这个有效果。
public native float getVideoAspectRatio()
获取视频宽高比例。
返回视频的宽高比。没有视频或者宽高不正确返回0。参见VideoView.setVideoLayout。
public native void setVideoQuality(int quality)
设置视频质量。如果播放延迟比较严重,你可以尝试使用VIDEOQUALITY_LOW(流畅),默认VIDEOQUALITY_LOW(流畅)。
quality 参见MediaPlayer的常量:VIDEOQUALITY_LOW(流畅)、VIDEOQUALITY_MEDIUM(普通)、VIDEOQUALITY_HIGH(高质)。
public native void setDeinterlace(boolean deinterlace)
设置视频反交错。
public native void setBufferSize(int bufSize)
设置视频缓冲大小(默认1024KB)单位Byte。
public native boolean isBuffering()
检测是否缓冲完毕。
public native int getBufferProgress()
参见OnBufferingUpdateListener。
public native void setMetaEncoding(String encoding)
设置元数据编码。例如:UTF-8
public native String getMetaEncoding()
获取元数据编码。
public HashMap getAudioTrackMap(String encoding)
获取视频中嵌入的音轨。例如:English
public native int getAudioTrack()
设置播放音轨编号。
public native void setAudioTrack(int audioIndex)
设置音轨编号,必须使用getAudioTrackMap的返回值。
public void setInitialAudioTrack(int audioIndex)
设置初始化音轨。
public void setInitialSubTrack(int subIndex)
设置初始化字幕。
public native void setSubShown(boolean shown)
设置是否显示字幕。
shown true表示显示字幕
public native void setSubEncoding(String encoding)
设置字幕编码。
encoding 字幕编码。如果为null将自动检测。
public native int getSubLocation()
获取字幕位置类型。0为内嵌字幕,1为外挂字幕。
public native void setSubPath(String subPath)
设置外挂字幕路径。必须是本地文件路径。
public native String getSubPath()
获取外挂字幕路径。
public native void setSubTrack(int trackId)
设置字幕编号。必须是getSubTrackMap的返回值。
public native int getSubTrack()
获取字幕编号。
public HashMap getSubTrackMap(String encoding)
获取视频内嵌字幕集合。
encoding 格式化字符串编码。如果为null将自动检测。
返回字幕名称和字幕编号组成的Map。
protected void finalize()
调用了native_finalize。
public interface OnBufferingUpdateListener
void onBufferingUpdate(MediaPlayer mp, int percent)
更新流媒体缓存状态。
mp 要更新的MediaPlayer
percent 已缓冲的百分比数(0 ~ 100)
public interface OnErrorListener
boolean onError(MediaPlayer mp, int what, int extra)
错误信息。
mp 错误相关的MediaPlayer
what 错误类型,参见MEDIA_ERROR_UNKNOWN、MEDIA_ERROR_NOT_VALID_FOR_PROGRESSIVE_PLAYBACK
extra 额外具体的错误code。通常依赖于实现。
如果处理了错误返回true,否则返回false。返回false或没有设置OnErrorListener将引发OnCompletionListener被调用。
public interface OnInfoListener
boolean onInfo(MediaPlayer mp, int what, int extra)
信息或警告。
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将丢弃信息或警告。
public interface OnSubtitleUpdateListener
public void onSubtitleUpdate(String text)
需要显示文字字幕。
public void onSubtitleUpdate(byte[] pixels, int width, int height)
需要显示图片字幕。
pixels 图片字幕像素
width 图片字幕宽度
height 图片字幕高度
Vitamio API for Android: VideoView
public class VideoView extends SurfaceView implements MediaController.MediaPlayerControl
用于播放视频文件。VideoView可以加载各种来源的图像(如资源或ContentProvider),注意计算视频尺寸,以便在任意布局管理器中使用,它还提供了诸如缩放等显示选项。
VideoView也提供封装了许多MediaPlayer的方法,例如getVideoWidth、setSubShown。
public static final int VIDEO_LAYOUT_ORIGIN
缩放参数,原始画面大小。
public static final int VIDEO_LAYOUT_SCALE
缩放参数,画面全屏。
public static final int VIDEO_LAYOUT_STRETCH
缩放参数,画面拉伸。
public static final int VIDEO_LAYOUT_ZOOM
缩放参数,画面裁剪。
public void setVideoLayout(int layout, float aspectRatio)
获取扫描视频的Uri。
layout 缩放参数
aspectRation 宽高比,为0将自动检测。
public boolean isValid()
Surface是否有效。 参见Surface的isValid方法。
public void setVideoPath(String path)
设置视频路径。
public void setVideoURI(Uri uri)
设置视频URI。(可以是网络视频地址)
public void stopPlayback()
停止视频播放,并释放资源。
public void setMediaController(MediaController controller)
设置媒体控制器。
controller 媒体控制器,注意是io.vov.vitamio.widget.MediaController。
public void setOnPreparedListener(OnPreparedListener l)
注册一个回调函数,在视频预处理完成后调用。在视频预处理完成后被调用。此时视频的宽度、高度、宽高比信息已经获取到,此时可调用seekTo让视频从指定位置开始播放。
public void setOnCompletionListener(OnCompletionListener l)
注册一个回调函数,视频播放完成后调用。
public void setOnErrorListener(OnErrorListener l)
注册一个回调函数,在异步操作调用过程中发生错误时调用。例如视频打开失败。
public void setOnBufferingUpdateListener(OnBufferingUpdateListener l)
注册一个回调函数,在网络视频流缓冲变化时调用。
public void setOnSeekCompleteListener(OnSeekCompleteListener l)
注册一个回调函数,在seek操作完成后调用。
public void setOnSubtitleUpdateListener(OnSubtitleUpdateListener l)
注册一个回调函数,在字幕需要显示时调用。
public void setOnInfoListener(OnInfoListener l)
注册一个回调函数,在有警告或错误信息时调用。例如:开始缓冲、缓冲结束、下载速度变化。
public boolean onTouchEvent(MotionEvent ev)
处理显示/隐藏MediaController。
public void start()
开始播放。
public void pause()
暂停播放。
public void suspend()
挂起(暂时没有实现功能)
public void resume()
恢复播放。
public long getDuration()
获取视频播放时长。
public long getCurrentPosition()
获取当前播放位置。
public void seekTo(long msec)
设置播放位置。
public boolean isPlaying()
是否正在播放。
public int getBufferPercentage()
获取缓冲百分比。
public void setVolume(float leftVolume, float rightVolume)
设置音量。
leftVolume 左声道
rightVolume 右声道
public int getVideoWidth()
获取视频宽度。
public int getVideoHeight()
获取视频高度。
public float getVideoAspectRatio()
设置视频宽高比例。没有视频或者宽高不正确返回0。
public void setVideoQuality(int quality)
设置视频质量。
quality 参见MediaPlayer的常量:VIDEOQUALITY_LOW(流畅)、VIDEOQUALITY_MEDIUM(普通)、VIDEOQUALITY_HIGH(高质)。
public void setBufferSize(int bufSize)
设置视频缓冲大小(默认1024KB)单位Byte。
public boolean isBuffering()
检测是否缓冲完毕。
public void setMetaEncoding(String encoding)
设置元数据编码。例如:UTF-8
public String getMetaEncoding()
获取元数据编码。
public HashMap getAudioTrackMap(String encoding)
获取视频中嵌入的音轨。例如:English
public int getAudioTrack()
设置播放音轨编号。
public void setAudioTrack(int audioIndex)
设置音轨编号,必须使用getAudioTrackMap的返回值。
public void setSubShown(boolean shown)
设置是否显示字幕。
shown true表示显示字幕
public void setSubEncoding(String encoding)
设置字幕编码。
encoding 字幕编码。如果为null将自动检测。
public int getSubLocation()
获取字幕位置类型。0为内嵌字幕,1为外挂字幕。
public void setSubPath(String subPath)
设置外挂字幕路径。必须是本地文件路径。
public String getSubPath()
获取外挂字幕路径。
public void setSubTrack(int trackId)
设置字幕编号。必须是getSubTrackMap的返回值。
public int getSubTrack()
获取字幕编号。
public HashMap getSubTrackMap(String encoding)
获取视频内嵌字幕集合。
encoding 格式化字符串编码。如果为null将自动检测。
返回字幕名称和字幕编号组成的Map。
public boolean canPause()
是否可暂停。(暂时没有实现功能)
public boolean canSeekBackward()
(暂时没有实现功能)
public boolean canSeekForward()
(暂时没有实现功能)
protected boolean isInPlaybackState()
是否处于正在播放的状态。
转载:http://blog.csdn.net/chaoyu168/article/details/}

我要回帖

更多关于 带谷歌框架的模拟器 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信