码迷,mamicode.com
首页 > 其他好文 > 详细

Vitamio使用总结

时间:2014-06-21 22:11:05      阅读:12125      评论:0      收藏:0      [点我收藏+]

标签:android   vitamio   视频   videoview   

1.什么是Vitamio?

Vitamio 是一款 Android 平台上的全能多媒体开发框架。Vitamio 凭借其简洁易用的 API 接口赢得了全球众多开发者的青睐。到目前,全球已经有超过 1000 种应用在使用 Vitamio,覆盖用户超过 2亿。

Vitamio 能够流畅播放720P甚至1080P高清MKV,FLV,MP4,MOV,TS,RMVB等常见格式的视频,还可以在 Android 上支持 MMS, RTSP, RTMP, HLS(m3u8) 等常见的多种视频流媒体协议,包括点播与直播。
支持 ARMv6 和 ARMv7 两种 ARM CPU,同时对 VFP, VFPv3, NEON 等指令集都做相应优化。

支持 Android 2.1+ 系统,支持超过 95% 的 Android 市场。同时 Android 2.1 之前的系统也基本支持,不过没做详细测试。

开源项目下载地址:https://github.com/yixia/VitamioBundle

注*用于商业开发的跟高级版本需经过商业授权

文章转载请注明来源:http://blog.csdn.net/fengfeng91 小峰91

2.如何配置及使用Vitamio?

导入Vitamoo

将VitamioBundle工程作为Android Library引入Demo工程使用即可。

注意

如果是Windows系统将VitamioBundle与Demo工程放在同一个文件夹下,否则添加Android Library可能失败,其他问题一般clean一下重新编译一下就好了。

Vitamio标准版有许多功能都为实现,如快进,快退,音量,亮度等等,需要各位自定义相关控件加以实现

 

 

 

AndroidManifest.xml配置

<activity

            android:name="io.vov.vitamio.activity.InitActivity"

         android:configChanges="orientation|screenSize|smallestScreenSize|keyboard|keyboardHidden|navigation"

            android:launchMode="singleTop"

            android:theme="@android:style/Theme.NoTitleBar"

            android:windowSoftInputMode="stateAlwaysHidden" />

服务

<service

            android:name="io.vov.vitamio.VitamioService"

            android:exported="false" >

            <intent-filter>

                <action android:name="io.vov.vitamio.IVitamioService" />

            </intent-filter>

        </service>

权限

 <uses-permission android:name="android.permission.WRITE_SETTINGS" />

    <uses-permission android:name="android.permission.WAKE_LOCK" />

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

    <uses-permission android:name="android.permission.READ_PHONE_STATE" />

    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />

    <uses-permission android:name="android.permission.INTERNET" />

    <uses-permission android:name="android.permission.BROADCAST_STICKY" />

    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

    <uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" />

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

 

 

3.简单的使用Vitamio播放一个视频

使用  VideoView

LibsChecker ckecker = new LibsChecker();

try {

chickres = ckecker.checkVitamioLibs(this,getClass().getName(), R.string.init_decoders, R.raw.libarm);//检查

catch (Exception e) {

// TODO: handle exception

LogUtil.e("ERR---Movie", e.toString());

return;

}

if (!chickres)

return;

 

mVideoView = (VideoView) findViewById(R.id.surface_view);

mLoading = (ImageView) findViewById(R.id.operation_bg);

mLoading.setOnClickListener(this);

Uri pathUri = this.getIntent().getData();

if (pathUri != null){

mVideoView.setVideoURI(pathUri);

}else{

mVideoView.setVideoPath(“URL地址”);

}

/**

 * 设置视频质量。参数quality参见MediaPlayer的常量:

 * VIDEOQUALITY_LOW(流畅)、VIDEOQUALITY_MEDIUM(普通)、VIDEOQUALITY_HIGH(高质)。

 */

mVideoView.setVideoQuality(MediaPlayer.VIDEOQUALITY_HIGH);

mVideoView.setOnPreparedListener(this);

mVideoView.setMediaController(new MediaController(this));

mVideoView.setOnCompletionListener(this);//注册一个回调函数,视频播放完成后调用。

mVideoView.setOnBufferingUpdateListener(this);//注册一个回调函数,在网络视频流缓冲变化时调用。

//mVideoView.setVideoLayout(0, 0);//layout缩放参数aspectRation 宽高比,为0将自动检测。

mVideoView.requestFocus();

相关接口

OnBufferingUpdateListener,

OnCompletionListener,

OnPreparedListener,

OnVideoSizeChangedListener, 

SurfaceHolder.Callback

注*

在使用Vitamio的过程中,实际开发可能涉及到多个播放页面。如切换跳转全屏播放。如果我们从全屏播放页面回到上一个播放界面时,如果为在退出时安全关闭播放器,着会导致FileNotFoundException,当你多次检查地址都发现播放地址完全没有问题,可就是会发生这个错误。你就需要在退出时调用stopPlayback()函数来释放资源。

 

VideoView经常使用到的函数

public void setVideoLayout(int layout,float aspectRatio)

获取扫描视频的Uri

参数

layout缩放参数

aspectRation 宽高比,为0将自动检测。

public boolean isValid()

Surface是否有效。 参见SurfaceisValid方法。

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 long getCurrentPosition()

获取当前播放位置。

public void seekTo(long msec)

设置播放位置。

参数msec 位置 毫秒

public boolean isPlaying()

是否正在播放。

public int getBufferPercentage()

获取缓冲百分比。

public void setVideoQuality(int quality)

设置视频质量。

参数

quality

VIDEOQUALITY_LOW(流畅)、

VIDEOQUALITY_MEDIUM(普通)、VIDEOQUALITY_HIGH(高质)。

public void setBufferSize(int bufSize)

设置视频缓冲大小。默认1024KB,单位byte

public boolean isBuffering()

检测是否缓冲完毕。

public void setMetaEncoding(String encoding)

设置元数据编码。例如:UTF-8

More...参见

http://www.cnblogs.com/over140/archive/2012/08/30/2663243.html

 

参考:

http://www.cnblogs.com/over140/category/409230.html

Vitamio使用总结,布布扣,bubuko.com

Vitamio使用总结

标签:android   vitamio   视频   videoview   

原文地址:http://blog.csdn.net/fengfeng91/article/details/32346237

(2)
(4)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!