3

これが私の元の質問です

私はそこに答えを実装しましたが、それでも問題は解決しません。

要点は次のとおりです。外部ストレージ(sdcard)からビデオを再生しています。ビデオの再生に問題があり、これが私のコードです:

Uri uri = Uri.parse(url);
intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(uri, "video/*");

「申し訳ありませんが、このビデオは再生できません」と表示されますが、ギャラリーでは再生可能です。URLを印刷したところ、次のようになりました。

VideoPlayer url: file:///mnt/sdcard/foldername/video-2012-12-26-21-26--44.mp4

私が得た回答からファイルが存在します。しかし、それでも問題は解決せず、何が悪かったのかわかりません。

どんな洞察も高く評価されます。ありがとう

編集:最初の質問で答えが見えなかった人へ。私はすでにこれを実装しています:

intent = new Intent(Intent.ACTION_VIEW);

File sdCard = Environment.getExternalStorageDirectory();
File file = new File(sdCard, "/foldername/video-2012-12-26-21-26--44.mp4");

intent.setDataAndType(Uri.fromFile(file), "video/*");

startActivity(intent);

私がチェックしたので、ファイルは存在します。ファイルの命名規則に問題があるのではないかと思っています。

また、デバイス、Samsung Galaxy Ace、Android 2.3.6、4.2 SDK でコンパイルしてデバッグしています。

編集 2: ビデオの名前をよりシンプルなものに変更しようとしましたが、ビデオが機能するようになりました。ファイルにはファイル名の長さの制限または命名規則があると思います。

4

3 に答える 3

5

このコードは、私が作成した実用的なアプリからのものです。試してみてください。

Intent intent = new Intent();
            intent.setAction(Intent.ACTION_VIEW);
            intent.setDataAndType(
                    Uri.parse("file://"+ file.getAbsolutePath()),
                    "video/*");
于 2013-01-03T11:37:09.767 に答える
1

file次のスキームを使用する必要があります。

だからあなたは使うべきですintent.setDataAndType("file://" + uri, "video/*");

于 2013-01-03T11:46:09.667 に答える