n00b在這裏(第一個Android項目)。我得到了一個已經與Android固件版本集成的定製視頻編解碼器。它是一個包含從MediaPlayerInterface繼承的類的.so文件,以及用於從create()工廠函數返回適當文件類型的自定義編解碼器類實例的自定義MediaPlayerService實現。如何創建自定義媒體播放器以在Android中播放自定義編解碼器?
我想通過將.so文件放入我的libs/armeabi文件夾並通過JNI調用它,將此編解碼器用作視頻播放器應用程序的一部分,該應用程序可以安裝在不包含固件編解碼器的手機上。
從我對this question的回答可以看出,在MediaPlayer框架中無法做到這一點,我必須從頭開始創建一個新的媒體播放器。首先,我使用Java實現了一個UI,並將其設置爲使用自定義視圖(而不是VideoView),該視圖擴展了SurfaceView並使用MediaPlayer類的一個實例來播放視頻。然後,我用一個自定義媒體播放器Java類替換了MediaPlayer的這個實例。我建立了JNI接口,模仿了android_media_MediaPlayer.cpp的方式,並且在JNI代碼中調用了MediaPlayer C++類。現在我需要用一個定製的C++媒體播放器類替換,即。
這是我開始遇到問題的地方。實施自定義播放器的建議方法是什麼?有一個嗎?除了通過源碼進行拖網之外,是否還有一些在線文檔適用於這些內容?我可以使用多少框架以及需要多少人來重新實現自己?我是否必須實現自己的等效MediaPlayerService?
任何提示非常感謝。
感謝您的回覆。在發佈最初的問題之前,我通讀了MediaPlayer界面的Android源代碼。類似的路線似乎不可能。具體而言,內置MediaPlayer使用ACCESS_SURFACE_FLINGER權限,這似乎被拒絕給不內置的應用程序。我希望用戶能夠下載並安裝我的播放器,而不是在手機上預先安裝它。 – samgak 2011-07-11 02:36:52
嗨,請分享您的最新發現,瞭解如何實現android自定義編解碼器。 @samgak – HoseinIT 2016-03-09 06:45:23