Vitamio FAQ

一、Vitamio介紹

1.1 Vitamio是什麼?

Vitamio是Android平臺視音頻播放組件,支持播放幾乎格式的視頻以及主流網絡視頻流(http/rtsp/mms等),詳細的中文介紹: 這裏

Vitamio官網:http://vov.io/vitamio/

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

VPlayer官網:http://vplayer.net 

1.2 Vitamio有什麼優點?

a). 強大。支持超多格式視頻和網絡視頻播放。(不強大免費也沒用,所以排在第一位)

b). 免費。個人、企業均免費使用,短時間內無任何收費計劃。

(Google Play上已有多款基於Vitamio的收費播放器,大家可以在裏面搜索Vitamio關鍵字)

c). 無縫集成。僅將Vitamio的Library工程引入即可使用,無需另外下載安裝解碼包(Vitamio的上一個版本是需要單獨下載安裝解碼包)。

d). 使用簡單。調用非常簡單,方便使用。

e). 自由定製。播放界面的代碼已完全開放,方便自定義播放界面、進度條等。

d). 持續更新。2012-7-9已發佈新一版的內測版本,預計8月初能發佈下一個版本。

e). 服務跟進。Vitamio官方QQ羣(246969281),提供開發者交流和討論。論壇還在開發中。

 

1.4 Vitamio背後的團隊

Vitamio與VPlayer屬同一個團隊、同一個公司(yixia.com)。我們在北京,目前團隊有5名成員,4名開發,1名設計師,以開發VPlayer爲主,Vitamio爲輔 :)

 

1.5 Vitamio與VPlayer什麼關係? 

VPlayer基於Vitamio開發,所以VPlayer能播放的Vitamio也能。 

OPlayer基於Vitamio開發,作爲推廣Vitamio的使用例子和示範產品,完全開放源代碼。雖是業餘之作,仍以正式發佈到市場爲目標。

 

1.6 Vitamio與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). 等不及了,那就把視頻測試地址和簡要說明發給我們([email protected]),我們儘可能的抽時間來回復,感謝! 

 

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 來打開

四、已知問題和注意事項(新版指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);
}
複製代碼

 

 

~~~~~~~~~~~~~~~~~~~~~~~~

關於Vitamio使用的問題,大家也可以往這裏提問,這裏彙總後持續更新。 

發佈了7 篇原創文章 · 獲贊 0 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章