サーバーからダウンロードしたビデオを表示する必要があるアプリを作成しています。ただし、一部のビデオでは、Gingerbread ではエラーが発生するだけで、Jelly Bean では問題なく動作します。
File f = new File(file);
// Tried to set source with the absolute path (file)
mPlayer.setDataSource(ParcelFileDescriptor.open(f, ParcelFileDescriptor.MODE_READ_ONLY).getFileDescriptor());
// holder is the surfaceholder for the SurfaceView
mPlayer.setDisplay(holder);
mPlayer.prepare();
私は古い Samsung、Emulator、古い Sony Ericsson でビデオをテストしました。一部の電話はビデオを再生でき、他の電話は再生できませんでした。
ビデオを Quicktime 形式 (.mov) で受け取り、使用しました
ffmpeg -i file.mov -vcodec copy -acodec copy file.mp4
すべてのビデオで、Android が理解できる MPEG-4 を取得します。これが、一部のビデオが機能し、他のビデオが機能しないという混乱を招く理由です。
ビデオは次の場所にダウンロードされます
context.getExternalFilesDir(null).getAbsolutePath() + "/path/to/videos/";
sha1sum をチェックして、ダウンロードがうまくいったことを確認します。
私が得るエラーはさまざまです。
エミュレーターで MediaPlayer エラー (1, -2147483648) が発生し、Samsung デバイスで MediaPlayer エラー (1, -15) が発生します。
では、どうすればビデオを再生できますか?