これに関する以前の質問をすべて調べましたが、ビデオが再生されないという事実を実際に修正するために機能するものは見つかりませんでした. h.264 でエンコードされた .mp4 ファイルを使用しており、R.raw.[ビデオ名] のアドレスをメイン アクティビティのインテント エクストラ経由で送信しています。メインレイアウトの「ビデオの再生」ボタンを押すと、適切なビデオのオーディオが機能する再生コントロールでロードされるため、少なくともその部分は機能しています.
これが私のコードです:
import android.app.Activity;
import android.net.Uri;
import android.os.Bundle;
import android.widget.MediaController;
import android.widget.VideoView;
public class VideoPlayer extends Activity {
private VideoView video;
private MediaController playbackControls;
public static final String iValue = "iValue";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.video);
video = (VideoView) findViewById(R.id.video);
Bundle extras = getIntent().getExtras();
int playMe = extras.getInt(iValue, 0);
Uri uri = Uri.parse("android.resource://" + getPackageName() + "/" + playMe);
playbackControls = new MediaController(this);
video.setMediaController(playbackControls);
video.setVideoURI(uri);
video.start();
}
}
したがって、私が調べたすべてのことは、これがかなり標準的なコードであり、機能するはずであることを示しています。正確にどのコーデックを使用する必要があるかについて、私が見逃しているものはありますか? これらのものにサイズ制限はありますか?
非常に粗悪な .3gp ファイルを再生することはできましたが、少しでも許容できるビットレートのファイルではありませんでした。ビデオのブロブが人間であることはほとんど識別できず、音声は井戸の底から聞こえてくるように聞こえました。より大きな .3gp ファイルは、完全に再生できないものとして表示されました。
どんな提案でも大歓迎です。ありがとう!
2011 年 4 月 16 日 - この検索に出くわした人へのフォローアップ: 最後に、デバッグに使用できる実際のデバイスを突き止め、ビデオは上記のセットアップで完全に再生されました。ビデオを再生する際のエミュレータの完全ながらくたを知ってよかったです。