web-dev-qa-db-ja.com

アセットまたはrawフォルダーからビデオを再生したい

Android using VideoViewのアセットまたはrawフォルダーからビデオを再生したいビデオを再生できないため、エラーが発生します。誰かに解決策を教えてください。

これが私が使用したコードです

VideoView vd = (VideoView)findViewById(R.id.Video);         
Uri uri = Uri.parse("Android.resource:"  + R.raw.video);
MediaController mc = new MediaController(this);
vd.setMediaController(mc);
vd.setVideoURI(uri); 
vd.start();
14
James

注意すべきいくつかの事柄:

  1. ビデオをプロジェクトのres/rawフォルダーにコピーする必要があります。
  2. サポートされている形式(3gp、wmv、mp4)で、ファイル名に小文字、数字、アンダースコア、ドットを使用して名前を付ける必要があります:my_video_file.mp4
  3. コードでこのリソースを操作するときは、生成されたR統計を参照します-ファイル拡張子が削除されます:R.raw.my_video_file
  4. Activityクラスには、ビデオに正しいURIを構築するときにコードで使用できるヘルパーメソッドgetPackageName()があります。
VideoView vv = (VideoView)this.findViewById(R.id.videoView)
String uri = "Android.resource://" + getPackageName() + "/" + R.raw.my_video_file;
vv.setVideoURI(Uri.parse(uri));
vv.start();

これについての詳細があります ここ

33
Darren Hicks

Uriにパッケージ名を含める必要があります。

  Uri uri = Uri.parse("Android.resource://[package]/raw/video")

または

  Uri uri = Uri.parse("Android.resource://[package]/"+R.raw.video);

また、 これらの例 もチェックしてください。

7
Paul Burke

VideoViewでうまくいかない方法はたくさんあります!主にlogcatがあなたに助けを与えないので、常にエラーUNKNOWNを与えます。

このリンクが開始するための最善の方法であることがわかりました...完全な説明なので、間違いはありません。著者に感謝します...

http://androidexample.com/Play_Video_File_-_Android_Example/index.php?view=article_discription&aid=124&aaid=144

2
Marky0

試してみてください:

   AssetFileDescriptor afd = getAssets().openFd(fileName);
   player.setDataSource(afd.getFileDescriptor(),afd.getStartOffset(), afd.getLength());
0
steevoo

必ずファイルのビデオ名を書いてください拡張子なし

0
Pelanes

ビデオリソースを/resource/raw/またはassets/に含めると、デフォルトでは.mp4形式が検索され、.wmvファイルは受け入れられません。外部の場所(/mnt/sdcard/demo.wmvなど)からビデオファイルを読み取る場合は、それらを受け入れます。

0
naren