1

動画を表示するための独自のビューを作成しています。組み込みの Android VideoView に基づいてカスタム ビューを作成したいと考えています。そのため、VideoView のソース コードを探しています。私が Stackoverflow などで見つけたほとんどの投稿は、grepcode を指しています。残念ながら、grepcode のコードは developer.android.com に記載されているコードではないようで、あまり使い物になりません。たとえば、grepcode の VideoView.java は、View から継承された mContext オブジェクトを参照しますが、developer.android.com SDK の View では使用できません。さらに、VideoView は MediaPlayer の resume メソッドを呼び出しますが、これも標準の MediaPlayer クラスでは使用できません。developer.android.com に記載されているソースはどこで入手できますか?

ありがとう、ヴァンス

4

1 に答える 1

1

まず、Android ベースのフレームワークはオープン ソースであり、 grepcodeからのソース コードとgithubからのオリジナルコードに違いはありません。どちらにも長所と短所があり、grepcode のソース コードは API レベルでタグ付けされているため、API クラスの特定のバージョンを簡単にナビゲートできます。github のソース コードには、すべてのコミットの完全な変更履歴がありますが、初期バージョンを検索/取得するのは少し複雑です。特定の API クラスの。

grepcode の VideoView.java は、View から継承された mContext オブジェクトを参照しますが、developer.android.com SDK の View では使用できません。

mContext は@hideandroid.view.View のようにマークされています。githubの head バージョンを参照してください。

VideoView は、標準の MediaPlayer クラスでも使用できない MediaPlayer の resume メソッドを呼び出します。

resume() は@hideandroid.media.MediaPlayer のようにマークされています。githubの以前のバージョンまたはgrepcode のタグ 2.2_r1.1 を参照してください。

一般的に言えば、Google がコンシューマー開発者に提供する開発 API (android.jar) は、com.android.internal@hideAPI が取り除かれています。しかし、実機にインストールされているランタイム API (framework.jar) にはすべてが含まれています。

これらの内部および非表示 API を独自のコードで使用する場合、解決策は、Java リフレクションを使用するか、彼のブログで説明されている inazaruk の回避策を使用することです

これが理にかなっていることを願っています。

于 2012-06-21T02:12:51.880 に答える