1.下载VitamioBundle的最新稳定,这里下载的是最新版4.2.2。

2.解压缩后,导入 Vitamio 库工程(即vitamio)和Demo工程(即vitamio--sample)到 Eclipse,详细步骤如下图。

步骤:通过File -> Import -> Android -> Existing Android Code Into Workspace来导入工程,然后修改一下相应的工程名称(也可以不修改)。

3.如果出现下面图示的错误,是因为Vitamio库项目需要使用SDK API 17(即Android 4.2.2)编译,使用Android SDK Manager下载相应版本再导入即可。

4.若要在自己的新建的工程中引入Vitamio库,可按照以下步骤执行:

1)参照上面的步骤,导入Vitamio库工程(即vitamio)到Eclipse。

2)将Vitamio库工程作为Android Library引入自己的新建使用即可,如图:

3)在需要播放视频的Activity的onCreate方法中载入解码器的lib:

   public void onCreate(Bundle icicle) {
super.onCreate(icicle);
if (!LibsChecker.checkVitamioLibs(this))
return;
//其他代码...
}

4)在 AndroidManifest.xml 中声明InitActivity:

        <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" />

5)开始使用Vitamio的API。

5.API使用

Vitamio的API与Android原生的API十分相似,主要是MediaPlayer和VideoView的使用。

1)MediaPlayer主要API,详细用法请看测试DEMO:

在布局文件中添加SurfaceView,视频显示在SurfaceView上。

  <SurfaceView
android:id="@+id/surface"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center" >
</SurfaceView>

Java代码中的API使用:

 //获得SurfaceView
mPreview = (SurfaceView) findViewById(R.id.surface);
//获取SurfaceView的SurfaceHolder
holder = mPreview.getHolder();
holder.addCallback(this); //创建一个MediaPlayer,并设置监听器
mMediaPlayer = new MediaPlayer(this);
//设置资源路径
mMediaPlayer.setDataSource(path);
//设置SurfaceHolder
mMediaPlayer.setDisplay(holder);
mMediaPlayer.prepareAsync();
mMediaPlayer.setOnBufferingUpdateListener(this);
mMediaPlayer.setOnCompletionListener(this);
mMediaPlayer.setOnPreparedListener(this);
mMediaPlayer.setOnVideoSizeChangedListener(this);
setVolumeControlStream(AudioManager.STREAM_MUSIC);

2)VideoView主要API使用,详细用法请看测试DEMO:

在布局文件中增加VideoView:

<io.vov.vitamio.widget.VideoView
android:id="@+id/surface_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
android:text="@string/openvideo1"
android:onClick="openVideo"/>

Java代码的API调用:

//载入解码库
if (!LibsChecker.checkVitamioLibs(this))
return;
mVideoView = (VideoView) findViewById(R.id.surface_view);
//为VideoView设置视频路径
mVideoView.setVideoPath(path);
//设置是否有播放控制条
mVideoView.setMediaController(new MediaController(this));
mVideoView.requestFocus(); mVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mediaPlayer) {
//设置播放速度
mediaPlayer.setPlaybackSpeed(1.0f);
}
});
} }

简要介绍如何集成Vitamio安卓版SDK的更多相关文章

  1. (转载)持续集成(第二版)[来自:Martin Fowler]

    转载自:iTech的博客 持续集成(第二版) 作者:Martin Fowler 译者:雷镇 持续集成 是一种软件开发实践.在持续集成中,团队成员频繁集成他们的工作成果,一般每人每天至少集成一次,也可以 ...

  2. 集成IOS 环信SDK

    集成IOS SDK 在您阅读此文档时,我们假定您已经具备了基础的 iOS 应用开发经验,并能够理解相关基础概念. 下载SDK 通过Cocoapods下载地址 不包含实时语音版本SDK(EaseMobC ...

  3. 中国首个 SaaS 模式的云告警平台安卓版 APP 上线

    今年一月底,国内首个 SaaS 模式的云告警平台 OneAlert 正式发布了 iOS 版 App 客户端,今天上午,安卓版 App 客户端也正式上线了!每个安卓用户,无需电脑,都可以通过手机全程跟踪 ...

  4. Dalvik虚拟机简要介绍和学习计划

    文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/8852432 我们知道,Android应用程序是 ...

  5. WCF简要介绍

    什么是WCF WCF的全称是:Windows Communication Foundation.从本质上来说,它是一套软件开发包,是微软公司推出的符合SOA思想的技术框架.WCF为程序员提供了丰富的功 ...

  6. Android应用程序的Activity启动过程简要介绍和学习计划

    文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6685853 在Android系统中,Activ ...

  7. Android资源管理框架(Asset Manager)简要介绍和学习计划

    文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/8738877 Android应用程序主要由两部分 ...

  8. Android应用程序组件Content Provider简要介绍和学习计划

    文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6946067 在Android系统中,Conte ...

  9. Android应用程序窗口(Activity)实现框架简要介绍和学习计划

    文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/8170307 前面我们学习了SurfaceFli ...

随机推荐

  1. android SimpleCursorAdapter的使用

    String[] fields=new String[]{"foodname","price","taste","stuff&qu ...

  2. HDU_2032——杨辉三角

    Problem Description 还记得中学时候学过的杨辉三角吗?具体的定义这里不再描述,你可以参考以下的图形:11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 1   ...

  3. 在Windows Azure上配置VM主备切换(1)——Linux篇

    对任何一个上线系统来说,高可用设计是不可或缺的一个环节,这样才可以确保应用可以持续.稳定的运行,而不是频繁的掉线.停机.高可用设计的核心思路很简单,就是消除一切单点故障,将单点链路或者节点升级为多点. ...

  4. Gradle[1]gradle distZip时,增加目录信息到zip中

    在使用gradle distZip打包生成应用程序时,发现只把src目录,及依赖的本地libs目录下的Jar包达到生成zip中, 如果项目还需要一些库文件,在和src同级目录,如sigar目录下,而且 ...

  5. [Qt] Mask 蒙版

    [Qt] Mask 蒙版 Mask能够覆盖在其他的widget上面,实现一些动态图片的加载效果.下面给出代码. mask.h #ifndef MASK_HJ #define MASK_HJ #incl ...

  6. android 几种发送短信的方法

    android中发送短信很简单, 首先要在Mainfest.xml中加入所需要的权限: ? 1 2 3 <uses-permission android:name="android.p ...

  7. 从不同层面看cocos2d-x

    一  框架层面 二  Lua层面 三  工具层面 四  android打包 一 框架层     总体来说,cocos2dX提供的一个简便的框架,包括了渲染,动画,事件分发,网络还有UI,物理引擎等几大 ...

  8. exit和abort都是用来终止程序的函数

    exit会做一些释放工作:释放所有的静态的全局的对象,缓存,关掉所有的I/O通道,然后终止程序.如果有函数通过atexit来注册,还会调用注册的函数.不过,如果atexit函数扔出异常的话,就会直接调 ...

  9. emacs快捷键学习(一)--Linux最强大的编辑器

    emacs是一个非常强大的编辑器.经常使用的快捷键总结例如以下: 退出emacs:ctrl+x ctrl+c 移动到下一屏:ctrl+v 移动到上一屏:alt+v 将光标所在行移动到屏幕中间:ctrl ...

  10. Factorization Machines 学习笔记(三)回归和分类

      近期学习了一种叫做 Factorization Machines(简称 FM)的算法,它可对随意的实值向量进行预測.其主要长处包含: 1) 可用于高度稀疏数据场景:2) 具有线性的计算复杂度.本文 ...