ユーザーが外部ストレージまたは内部ストレージを使用できるようにしようとしています。画像とビデオの両方を表示しています (科学的な性質のもの)。メディアを SD カードに保存する場合は、すべて問題ありません。しかし、メディアを内部に保存すると、画像だけが表示されます。何を試しても、applicationcontext.getFilesDir() に保存されているメディアを読み込んで表示しようとすると、さまざまなエラーが発生します。
ビデオビューのコンテンツをそのようなファイルに設定するトリックはありますか?
ContentResolver は役に立ちますか?
関連して、外部ストレージが存在すると仮定するのは悪い形式と見なされますか?
前もって感謝します、
シド
以下は、「ビデオを再生できません。申し訳ありませんが、このビデオは再生できません」で失敗する 1 つのバージョンです。しかし、私には他にも多くの失敗モードがあります。内部ビデオを一時ストレージ (外部) にコピーして再生できるので、このコピーを内部にコピーすると実際に有効なムービーが作成されます。内部ストレージから直接再生しようとすると失敗します。
videoFile = new File(this.getFilesDir() + File.separator + "test.mp4");
InputStream data = res.openRawResource(R.raw.moviegood);
try {
OutputStream myOutputStream = new FileOutputStream(videoFile);
byte[] buffer = new byte[8192];
int length;
while ( (length = data.read(buffer)) > 0 ) {
myOutputStream.write(buffer);
}
//Close the streams
myOutputStream.flush();
myOutputStream.close();
data.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
vview.setKeepScreenOn(true);
vview.setVideoPath(videoFile.getAbsolutePath());
vview.start();