Vitamio FAQ(2012-11-20 )

一、Vitamio介绍

1.1 Vitamio是什么?

Vitamio是Android平台视音频播放组件,支持播放几乎格式的视频以及主流网络视频流(http/rtsp/mms等),详细的中文介绍: 这里

Vitamio官网:http://vitamio.org/

Vitamio微博:http://weibo.com/vitamio  

VPlayer官网:http://vplayer.net 

Vitamio豆瓣:http://site.douban.com/145815/ 

 

1.2 关于Vitamio的名字(摘自豆瓣官网)

Vitamio 来源于英文单词Vitamin(维他命),希望Vitamio对于安卓多媒体开发者的重要性,就像Vitmain之于人体一样不可缺少。  

The name of Vitamio comes from Vitamin, We hope the importance of Vitamio for Android multimedia developers as indispensable as Vitamin for human.

 

1.3 关于Vitamio的由来(摘自豆瓣官网)

我们是一拨葱名勤劳的Coder,我们憎恶烦冗的Android多媒体程序开发,从版本升级到不同设 备,刚坑娘的测试完三星,htc,sony,操,又拿来了v880;我们认为这些讨厌的玩意注定会让我们的生活变得愚蠢,新技术神马的也是没有时间去研究 ,最令人发指的是不能专注于实现自己的创意APP。

经常沉溺于拯救世界的精神世界,平凡的Coder也能变奇葩。
作为最早研究Android媒体工具的团队,我们决定把我们的Vitamio框架免费出去,助力安卓多媒体开发者实现自己的创意梦想 :D

各位少年,我们是来自中国的高品质多媒体框架噢。 

第一版发布日期:2011年9月发布
 

1.4 Vitamio相关数据

从2011年9月发布至今,用户下载量超过2000W,使用Vitamio的开发者超过1500位,使用过Vitamio产品有

国内:搜狐视频,91熊猫影音(网龙),海底捞,歌华有限 等

国外:Pak TV Global,Madani Channel,Deen TV,myTRANS,FPlayer,AnimeFTW.tv,Radio Nepali,GNC LiveWell,MagicTV Streaming Player Free,Hispan TV Mobile,TV Italy等 

 

1.5 Vitamio有什么优点?

a). 强大。支持超多格式视频和网络视频播放。(不强大免费也没用,所以排在第一位)

b). 个人免费。(但企业使用需要购买授权)

(Google Play上已有多款基于Vitamio的收费播放器,大家可以在里面搜索Vitamio关键字)

c). 无缝集成。仅将Vitamio的Library工程引入即可使用,无需另外下载安装解码包(Vitamio的上一个版本是需要单独下载安装解码包)。

d). 使用简单。调用非常简单,方便使用。

e). 自由定制。播放界面的代码已完全开放,方便自定义播放界面、进度条等。

d). 持续更新。2012-7-9已发布新一版的内测版本,预计8月初能发布下一个版本。

e). 服务跟进。Vitamio官方QQ群(171570336),提供开发者交流和讨论。论坛还在开发中。

 

1.6 Vitamio背后的团队

Vitamio与VPlayer属同一个团队、同一个公司(yixia.com)。我们在北京,目前团队有5名成员,4名开发,1名设计师,以开发VPlayer为主,Vitamio为辅 :)

 

1.7 Vitamio与VPlayer什么关系? 

VPlayer基于Vitamio开发,所以VPlayer能播放的Vitamio也能。 

OPlayer基于Vitamio开发,作为推广Vitamio的使用例子和示范产品,完全开放源代码。虽是业余之作,仍以正式发布到市场为目标。

 

1.8 Vitamio与ffmpeg

FFmpeg提供软件解码器和多路输出(demuxers)。Vitamio使用LGPLv2.1许可下FFmpeg的代码,代码可以从这里下载。

https://bitbucket.org/ABitNo/ffmpegandroid 

 

二、Vitamio下载和运行

2.1 下载

Vitamio 3.0下载。(2012-10-23更新) 

OPlayer 3.0下载。(2012-10-24更新,没有taocode账户的请注册一个) 

 

2.2 运行例子

解压后两个项目:VitamioBundle和Test,其中VitamioBundle是Library(关于Android Library参见这里),运行Test例子即可。注意:

1). 例子使用API 16,没有安装升级最新Android 4.1 会报错,大家设置里降低至API 14(Android 4.0) 或API 15(Android 4.0.3) 即可。

2). 工程文件并没有gen文件夹,请大家自行加上。

3). 先编译VitamioBundle,后编译Test。如果仍然有错误,把工程Clean一下,依次再编译一下。

4). 修改VideoViewDemo视频路径为你要测试的视频路径。注意,本地视频用setVideoPath方法,播放网络视频用setVideoURI方法。

 

2.3 整合例子 

不希望以Library的方式引用Vitamio,可以直接把VitamioBundle里所有的类、资源拷贝至目标项目。注意src、libs、res目录下的都要拷贝过去,还有AndroidManifest.xml中的配置。

成功整合例子,大家可以看一下OPlayer的结构。

 

2.4 自定义InitActiviy,即正在解压解码包进度条界面。

  这里给出InitActivity代码: 

public class InitActivity extends Activity {
    public static final String FROM_ME = "fromVitamioInitActivity";
    public static final String EXTRA_MSG = "EXTRA_MSG";
    public static final String EXTRA_FILE = "EXTRA_FILE";
    private ProgressDialog mPD;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

        new AsyncTask<Object, Object, Object>() {
            protected void onPreExecute() {
                mPD = new ProgressDialog(InitActivity.this);
                mPD.setCancelable(false);
                mPD.setMessage(getString(getIntent().getIntExtra(EXTRA_MSG, R.string.vitamio_init_decoders)));
                mPD.show();
            }

            @Override
            protected Object doInBackground(Object... params) {
                VitamioConnection.initNativeLibs(getApplicationContext(), getIntent().getIntExtra(EXTRA_FILE, R.raw.libarm), new VitamioConnection.OnNativeLibsInitedListener() {
                    @Override
                    public void onNativeLibsInitCompleted(String libPath) {
                        Log.d("Native libs inited at " + libPath);
                        uiHandler.sendEmptyMessage(0);
                    }
                });
                return null;
            }
        }.execute();
    }

    private Handler uiHandler = new Handler() {
        public void handleMessage(Message msg) {
            mPD.dismiss();
            Intent src = getIntent();
            Intent i = new Intent();
            i.setClassName(src.getStringExtra("package"), src.getStringExtra("className"));
            i.setData(src.getData());
            i.putExtras(src);
            i.putExtra(FROM_ME, true);
            startActivity(i);
            finish();
        }
    };
}

  代码说明:

主要是VitamioConnection.initNativeLibs,大家自己写一个初始化的界面即可,线程里调用这个代码即可。 

 

三、Vitamio问题汇总

3.1 官网怎么打不开?

由于vplayer.net、vov.io等几个网站都是我们部门自己维护的,目前就一人再改,出点问题来不及弄,你懂的。 

 

3.2  case : 为什么一直停在正在解码的解码?

 case : Couldn't load vinit: findLibrary returned null 

 case : Not allowed to bind to service Intent (act=io.vov.vitmio.IVitamioService) 

 case : io.vov.vitmio.VitamioInstaller$VitamioNotFoundException 

 case : java.lang.UnsatisfiedLinkError: Library /data/data/null/libs/libvplaer.so not found 

 defalut : //各种运行不了的问题

return 基本就一个问题,2012-7-9发布的Vitamio测试版本无法共存的问题。无法与VPlayer共存、无法与其他Vitamio共存,需要卸载干净了。注意改一下包名(package)就是一个新的APK,需要把之前的卸载掉。

 

3.3 视频/视频流(rtp、rtsp等)播放不了。 

可能存在以下几种情况:

a). 视频本身就存在问题,你可以用其他播放器播放一下,是否能正常播放。

b). 本地网速不给力/设备本事配置过低,这个没办法

c). 视频源卡,本事带宽不够,直接访问也很慢,这个也没办法

d). 用VPlayer与Vitamio同样都有问题,而其他播放器没事,这个可能是我们的问题,我们还在持续改进,尤其是播在线视频这部分,这个可以等新版发布 :)

e). 等不及了,那就把视频测试地址和简要说明发给我们(vplayer@yixia.com),我们尽可能的抽时间来回复,感谢! 

 

3.4 Vitamio最低支持的Android版本

目前我们在运行的项目最低支持Android 2.1,示例工程选的Android API Level 是4.1,但不代表只支持4.0以上,大家可从AndroidManifest.xml中看得出:

<uses-sdk  android:minSdkVersion="7"   android:targetSdkVersion="15" />
如果编译无法运行的话,把VitamioBundle项目下res/values-v11和values-v14删掉即可,其他部分稍作改动即可。 

 

3.5 为什么会弹出提示框要求安装Vitamio Plugin

因为你下载和使用的是旧版的Vitamio,请卸载干净后下载2012-7-9日发布的版本,请看本文 2.1 下载。 

 

3.6 是否支持硬解码?

目前支持硬解码这部分不是很成熟,也不稳定,暂时不提供。 

 

3.7 什么时候发布新版本?

诶,,,请关注我们官方微博(http://weibo.com/vitamio )!!目前集中精力再弄VPlayer,新版顺利上线后应该能加快Vitamio的发布速度,所以大家可以先用VPlayer来测试。

 

3.8 E/Vitamio(1557): java.io.FileNotFoundException: No content provider: (2012-8-6)
这个不是错误,是正常的处理。现在播放视频是这样做的:先把 URL 当做一个 ContentProvider 来打开,如果打不开,就直接当做 URL 来打开

 

3.9 Vitamio支持哪些指令集的CPU?(2012-09-07)

ARMv6、ARMv6 VFP、ARMv7 VFPV3、ARMv7 NEON(注意:2012-8-31发布的版本不支持ARMv6的CPU,VPlayer已经不支持,但下次发版Vitamio会加上)

 

3.10 播放网络视频突然中断的问题

可能是视频网站做了限制,加入了一些不能播的地址,目前Vitamio的处理是播不了就直接关闭了,后续版本会改进,直接跳过。

 

3.11 拖动进度条出现回帧现象(本地播放,比如,拖到到1:20,但是播放时,跳到1:15) 【2012-11-20 新增】

这是正常现象,不是播放器的问题。默认seek要到最近的关键帧,不能保证任何时间点上都有关键帧 。除非你是intra-only 的编码方式 。(——来自GoogleGeek)

四、已知问题和注意事项(新版指2012-8-31发布的版本)

4.1 混淆工程时注意,需要忽略vitamio里面的类库!(2012-8-1 update) 

-keep class io.vov.utils.** { *; }
-keep class io.vov.vitamio.** { *; }

 

4.2  不能在包含项目里面使用io.vov.vitamio.provider.MediaProvider

否则如果安装了VPlayer,会报冲突的错误无法安装。也就是说,可以直接使用VPlayer的MediaProvider,或者自己写扫描服务,但是名字不能相同。 

 

五、其他

5.1 调用VPlayer来播放视频的代码: 

private void startPlayer(String url, String title) {
Intent i = new Intent();
i.setComponent(new ComponentName("me.abitno.vplayer.t", "me.abitno.vplayer.VideoActivity"));
i.setAction("me.abitno.vplayer.action.VIEW");
i.setData(Uri.parse(url));
i.putExtra("displayName", title);
startActivity(i);
}

  

转载:http://www.cnblogs.com/over140/archive/2012/08/01/2611323.html

时间: 2024-11-18 07:43:02

Vitamio FAQ(2012-11-20 )的相关文章

UDT协议在连接对端时出错(UDT4.11 connect)

问题描述 UDT协议在连接对端时出错(UDT4.11 connect) 本人最近在研究UDT协议,想用它写一个Windows下运行的客户端,用c++编写,在写完测试时发现个问题,随后用UDE demo测试发现问题依然存在.(非Rendezvous模式) 运行环境: Win7 VS2010 UDT版本4.11 问题描述: 因为是一个长期运行的程序,修改UDT demo recvfile.cpp 使它循环发送,不退出 对connect做如下处理 if (UDT::ERROR == UDT::conn

招贤纳士-第四期(2017.11.30)

持续推了三期,今天是第四期,还是在朋友圈征集信息,本期的公司有饿了吗,竞技世界,大街网,宜信支付与结算中心,宜信大数据创新中心,搜狐畅游,北京海量数据和Pivotal,如果你有更多的职位需求,可以微信留言,后台留言或者发送邮件jeanrock@126.com,说不定我能帮到你. 饿了吗 "饿了么"是中国专业的餐饮O2O平台.公司创立于2009年4月.由张旭豪.康嘉等人在上海创立. 目前,饿了么获得融资总金额达23.4亿美元.其中,2016年4月,饿了么获得来自阿里巴巴和蚂蚁金服的12.

JavaScript FAQ(二十四)—— 声音

二十一.声音   1.可以播放声音的浏览器(Audio-enabled Browsers) Q:什么可以浏览器可以执行播放声音的脚本? A:如果在声音播放描述的技术可以在Miscrosoft Internet Explorer 4.0及其更新版本中工作,那么同样可以在Netscape Navigator 3.0及其更新版本中工作.要在Internet Explorer中播放声音,在4.0以及后来版本中测试就足够了.然后在Netscape Navigator中,你必须确保以下几点: 浏览器版本是3

JavaScript FAQ(二十二)——客户端信息

十九.客户端信息   1.浏览器名称(Browser Name) Q:我如何检测浏览器名称? A:要获取用户浏览器的实际名称,你可以用navigator.appName和navigator.userAgent属性.userAgent属性比appName更可靠些,例如,Firefox(和其他一些浏览器)由于兼容Netscape Navigator,因此对navigator.appName可能返回"Netscape". 下面的代码实例使用navigator.userAgent实现浏览器检测

一周电商新闻点评(2012.11.12-2012.11.16)

阿里集团 11月12日  ,阿里集团官方公布了2012年"11.11狂欢节"最终销售数据,一举达到191亿 .这一数字是中国网上零售业的一个巅峰,也是整个中国零售史上单平台.单日最高销售额记录,创下了N个第一.在今年整个零售业一片惨淡.电商环境恶劣的背景下,天猫的这一业绩堪称"逆天". 点评:阿里确实"逆天"了,即便除掉算40亿的各种水分,这销售额也能甩开了美国的超级星期一(Cyber Monday)几条街.但显然,这样做的负面效益也是很明显的,

一周电商新闻点评(2012.11.19-2012.11.23)

亚马逊中国 新闻:11月19日好耶集团官方微博宣布,前亚马逊中国总裁王汉华出任好耶集团CEO,全面负责好耶的战略和执行.王汉华于2005年4月加入亚马逊,担任卓越亚马逊总裁,负责亚马逊在中国的销售市场及合作,王汉华前后在亚马逊中国任职长达近8年. 点评:和刘强东.李国庆等创始人加CEO不同,亚马逊中国总裁说白了仅是个职业经理人,来去相对自由.贝佐斯给自己高管和员工的工资不高,都是送长期股权,估计王汉华熬了快8年,股权兑现应该是差不多.至于加盟好耶是为了带领好耶冲击上市,这个说法过于强调个人的能量

最近草根热点资讯回顾(8.1-8.20)

中介交易 SEO诊断淘宝客 站长团购 云主机 技术大厅 全国首例网站交易的逃税案引发争议 专家认为是否征税应区分企业和个人,网站个人 卖家暂不宜缴税     近日,全国首例个人利用B2C网站交易逃税案一审判决被告逃税,引发了网上交易缴税之争.一种观点认为,网上买卖也应纳入税收范围,否则网上交易将成"逃税"避风港. google adsense支票各省抢报活动 google adsense 7月支票在发布的路途中,各省市的兄弟们都在翘首盼等.本站在8月1日-4日, 举行有奖活动.各省第一

MATLAB 数据分析方法(第2版)2.1 基本统计量与数据可视化

第2章 数据描述性分析   数据描述性分析是从样本数据出发,概括分析数据的集中位置.分散程度.相互关联关系以及数据分布的正态或偏态特征等.它是进行数据分析的基础,对不同类型量纲的数据有时还要进行变换,然后再作出合理分析.本章主要介绍样本数据的基本统计量.数据的可视化.数据分布检验及数据变换等内容.   2.1 基本统计量与数据可视化   2.1.1 一维样本数据的基本统计量   描述数据的基本特征主要为集中位置和分散程度.   设从所研究的对象(即总体)X中观测得到n个观测值 x1,x2,-,x

《SAP ERP财务:配置与设计(第2版)》——2.4 配置企业结构

2.4 配置企业结构 SAP ERP财务:配置与设计(第2版) 贯穿全书,我们都将力图阐述完成配置操作所需要的所有步骤.应当把正文和界面截图与在你自己的SAP界面上所看到的内容联系起来. 备注 如果本书所阐述的内容与你自己SAP界面上的内容不一致,则可能是由于版本差异造成的(我们以下所著述的内容是基于SAP ERP ECC 6.0版本的),也可能是由所做的相关配置设置造成的. 在进入企业结构的详细配置之前,需要解释两个基本概念:国家和货币.虽然他们本身不是企业结构的一部分,但是国家和货币在企业结