私は Android を使用しており、次のコードを使用して res/raw から映画を再生するビデオビューを持っています:
public static void startVideo(String moviename) {
playingVideo = true;
final String name = moviename + "x264";
instance.runOnUiThread(new Runnable() {
public void run() {
instance.mVideoView.bringToFront();
instance.mVideoView.setVisibility(View.VISIBLE);
String uri = "android.resource://" + instance.getPackageName()
+ "/raw/" + name;
instance.mVideoView.setVideoURI(Uri.parse(uri));
instance.mVideoView.requestFocus();
instance.mVideoView.start();
}
});
ただし、アクティビティの onCreate メソッド内で有効なアセット イメージ ファイル名 (「backdrop.jpg」など) を引数として次の関数を呼び出すと、ビデオ ビューが表示されなくなります。
public Bitmap getBitmapFromAsset(String strName) {
AssetManager assetManager = this.getAssets();
InputStream is;
Bitmap bitmap = null;
try {
is = assetManager.open(strName);
bitmap = BitmapFactory.decodeStream(is);
is.close();
} catch (IOException e) {
return null;
}
return bitmap;
}
結果のビットマップをコードで使用するかどうかは関係ありません。上記の関数を呼び出すだけで、ビデオプレーヤーが表示されなくなるようです。その関数を呼び出して結果をローカル変数に保存するだけの行をコメントアウトするだけで、ビデオビューが再び正常に表示されるようになります。
また、他に影響はないようです...たとえば、プログラムにGLSurfaceViewがあり、問題なく表示されます。
私はこれについて非常に困惑しています...そしてどんな助けも大歓迎です。
前もって感謝します。