10

Android の内部ストレージに保存されているビデオを再生しようとしています。ただし、何をしても、-1 エラーまたは -38 エラーが返されます。どちらもかなり一般的なエラーのように見えるため、あまり理解できません。

MediaPlayer インスタンスではなく VideoView を使用して、ローカル ストレージからビデオ ファイルを再生できるかどうか疑問に思っています。

私のアプリに含まれる手順には、

  1. リモート URL からファイルをダウンロードする
  2. ファイルを内部ストレージに保存します(グローバルな読み取り権限があることを確認するための規則を使用していることに注意してください。つまり

    openFileOutput(file_name, Context.MODE_WORLD_READABLE);
    
  3. 後でこの場所からメディア ファイルを読み戻し、videoView で再生します。

    String filePath = "file://" + getFilesDir()+File.separator+file_name;
    Uri videoUri = Uri.parse(filePath);
    Log.d("Video Player", filePath);
    videoPlayer.setVideoURI(videoUri);
    

また、これらのファイルを読み取れるように CustomContentProvider を実装する必要があることを指摘する StackOverflow の他のリンクも調べました。カスタム コンテンツ プロバイダを作成し、videoView の代わりに mediaPlayer を使用することなく、ファイル uri にアクセスして videoView に設定する直接的な方法はありますか。

使用されるその他の StackOverflow リファレンス

  1. Android - アプリのプライベート フォルダーからビデオを読み込む
  2. videoview は、内部ストレージに保存されたビデオを再生できますか?
4

4 に答える 4

5

これを試してください。このリンクで raw フォルダーからビデオを再生する手順を説明しました: Video player not workig! . その上で、変更すると

Uri uri = Uri.parse("android.resource://" + getPackageName() + "/"+R.raw.VideoName);

Uri uri = Uri.parse(Environment.getExternalStorageDirectory()+"<path to your video>");

例えば:

Uri uri = Uri.parse(Environment.getExternalStorageDirectory()+"/dcim/camera/2012-05-15_17-50-39_319.3gp");

あなたの問題を解決すると思います。マニフェストに必要なアクセス許可を付与することを忘れないでください。

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
于 2012-05-15T12:30:07.173 に答える