私はAndroid開発に不慣れで、RAWフォルダーからMP4ビデオを再生しようとしていますが、ここですべての回答を読み、Googleで何時間もブラウジングしましたが、うまくいきませんでした.
私の現在のコードは( onCreate() メソッドで呼び出されます)
VideoView vv = (VideoView)findViewById(R.id.video_container);
int vID = getResources().getIdentifier("video1", "raw", getPackageName());
Uri uri = Uri.parse("android.resource://" + getPackageName() + "/" + vID);
MediaController mc = new MediaController(this);
vv.setMediaController(mc);
vv.setVideoURI(uri);
vv.requestFocus();
vv.start();
(現在、ビデオ名はハードコーディングされていますが、以前のインテントから渡される必要があります。これが問題である可能性を排除するために書きました)
LogCat では、このエラーのみが発生し続けます。
Error (1,-2147483648)
アプリは「このビデオを再生できません」というメッセージのみを警告し、それだけです。
少なくともより良いエラー報告を得るために、いくつかの例外を試行/キャッチする必要がありますか? 私が使用しているコードは、インターネットやここで見つけた他の何十ものコードと同等であり、すべて正常に動作し (そして Eclipse エミュレーターで再生されます)、誰も try/catch を使用していませんでした。Android 開発者向けのドキュメントは、理解するのが非常に難しい場合があるため、これらをどこにどのように配置すればよいかわかりません (onPrepare()?)。
ビデオ ファイルは「video1.mp4」と呼ばれ、res/raw フォルダーに配置されます。サイズは約です。10.4 Mb で、Ubuntu 12.04 で Arista Transcoder を使用して、高解像度の mov ファイル (アプリは iPad バージョンに相当する Android) から 854 x 480 の H.264 / AVC にエンコードされています。価値があるのは、変換されたビデオが私の PC で正常に再生されることです。
私は Eclipse Indigo で開発しています。アプリはタブレット デバイスを対象としており、エミュレートされた AVD は 1280x800 mdpi タブレットです。私は現在、実際のデバイスを持っていません (そして、何日も持っていません)。そのため、問題がエミュレータだけにあるのかどうかをテストすることはできません。
残念ながら、ファイルを SD カードにコピーする可能性は問題外です。リモート サーバーからビデオをフェッチする場合と同様です。アプリはすべてのビデオを埋め込んで出荷する必要があり (クライアントの要件に従って)、デバイスにSDカードがあるかどうか(また、どのモデルかはわかりません)