[转载]Vitamio FAQ

一、Vitamio介绍

1.1Vitamio是什么?

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

Vitamio官网:http://vov.io/vitamio/(目前已打不开,正在修复)

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

VPlayer官网:http://vplayer.net 

 

1.2Vitamio有什么优点?

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

b).免费。个人、企业均免费使用,短时间内无任何收费计划。

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

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

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

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

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

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

 

1.4Vitamio背后的团队

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

 

1.5Vitamio与VPlayer什么关系? 

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

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

 

1.6Vitamio与ffmpeg

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

https://bitbucket.org/ABitNo/ffmpegandroid 

 

二、Vitamio下载和运行

2.1下载

请移步官网: 如何使用 VitamioBundle 

如官网无法访问请点这里(VitamioBundle.7z)下载。

 

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.4Vitamio最低支持的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来测试。

 

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

4.1新版本Vitamio项目无法与其他Vitamio项目和VPlayer共存的问题。

下一个版本会解决这个问题。

 

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

 

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

 

 

五、其他

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);
}
复制代码

 

posted on 2012-08-02 12:26  旁_观_者  阅读(262)  评论(0编辑  收藏  举报

导航