1

私はビデオプレーヤーアプリを開発しています。SDカード、アルバム、または電話の任意のフォルダーからビデオを選択する際に、このアプリをオプションとして表示したい. ビデオを再生するためにビデオ プレーヤーを選択すると、アプリが起動しますが、ビデオが再生されません。マニフェストで外部ストレージの読み取りと書き込みを許可しました。以下は私のコードです:

 Intent in =getIntent();
 file_path = in.getData().getPath();
 System.out.println("file path from sdcard:"+file_path);
  videoView =(VideoView)findViewById(R.id.video);

   MediaController mediaController= new MediaController(this);
    mediaController.setAnchorView(videoView);        
     Uri uri=Uri.parse(file_path);        
     videoView.setVideoURI(uri);        
     videoView.requestFocus();
         videoView.start();

エラー :

 10-19 10:39:40.917: I/System.out(20430): file path from sdcard:/external/video/media/24363
 10-19 10:39:40.987: E/MediaPlayer(20430): Uri is  <URL suppressed>
 10-19 10:39:40.997: E/MediaPlayer(20430): error (1, -2147483648)
 10-19 10:39:41.017: E/MediaPlayer(20430): Error (1,-2147483648)
 10-19 10:39:41.017: D/VideoView(20430): Error: 1,-2147483648

編集:電話のテスト:32Gbの内蔵メモリを備えたAndroid 4.1で、SDカードはありません。

4

5 に答える 5

2

これに対する回答はこちら

 public String getRealPathFromURI(Uri contentUri) {
    String[] proj = { MediaStore.Video.Media.DATA };
    Cursor cursor = managedQuery(contentUri, proj, null, null, null);
    int column_index = cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DATA);
    cursor.moveToFirst();
    return cursor.getString(column_index);
}
于 2013-10-21T10:43:29.410 に答える
0

正直なところ、私は過去に同様の問題を経験しており、各アカウントについて、最終的に最良の解決策であることがわかったのは、SurfaceView を直接拡張することでした。作成するコードの量は驚くほど少なく、(比較的言えば) 簡単に要件に合わせて効率的に調整できます。

于 2013-10-19T06:46:52.227 に答える