[Android] assets や res/raw にあるメディアデータ(動画や音声ファイル)のアクセス方法

2011/11/14

カスタム動画プレイヤーを作ろうとして、MediaPlayerを使ったところ、
うまくいきませんでした。

動画ファイルを assets/ か res/raw に置いていました。

ググったところ。解決方法を発見!

assets/video_file.mp4にファイルを置いていたら

_player = new MediaPlayer();
AssetFileDescriptor afd = getAssets().openFd("video_file.mp4");
_player.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength());
    		
_player.setDisplay(_holder); //_holder is SurfaceHolder of SurfaceView
_player.prepare();

もしくは、res/raw/video_file.mp4にファイルを置いていたら

_player = new MediaPlayer();
 String fileName = "android.resource://" + getPackageName() + "/" + R.raw.video_file;
_player.setDataSource(this, Uri.parse(fileName));
    		
_player.setDisplay(_holder); //_holder is SurfaceHolder of SurfaceView
_player.prepare();

下のページたちがすごく役にたちました。ありがとうございますです。

Discovering Android – Embedding Video in an Android Application
Play audio file from the assets directory


自作iPhoneアプリ 好評発売中!
フォルメモ - シンプルなフォルダつきメモ帳
ジッピー電卓 - 消費税や割引もサクサク計算!

ページトップへ戻る