2012-01-24 10 views
0

私のアプリケーションでは、data/data/package_name/files/Folder/フォルダにオーディオファイルを保存しています。これらのオーディオファイルをMediaPlayerのオブジェクトを使って再生したいのですが、可能です。データ/データ/パッケージ名/ファイルパスからオーディオファイルを再生したい

using player.setDataSource(path) //and by using 
MediaPlayer.create(getApplicationContext(),Uri.fromFile(path)). 

私はこの

01-24 11:35:13.968: ERROR/AndroidRuntime(1064): FATAL EXCEPTION: main 
01-24 11:35:13.968: ERROR/AndroidRuntime(1064): java.lang.NullPointerException 
runtime exception. 

を取得しています上記の私がしようとしてaudio.Byを再生することができるように助けてくださいどのような方法があります。 は、私はまた、

try { 
       Log.d("1","1"); 
       File mFile = new File("/data/data/com.lister.viewer/files/com.aaa.0001/audio.wav"); 
       Log.d("2","2"); 
       FileInputStream fileInputStream = new FileInputStream(mFile); 
       Log.d("3","3"); 
       player.setDataSource(fileInputStream.getFD());   
       Log.d("4","4"); 
       player.prepare(); 
       Log.d("5","5"); 

      } catch (IllegalArgumentException e) { 
       // TODO Auto-generated catch block 
       Log.d("6","6"); 
       e.printStackTrace(); 
      } catch (IllegalStateException e) { 
       // TODO Auto-generated catch block 
       Log.d("7","7"); 
       e.printStackTrace(); 
      } 

      catch (FileNotFoundException e) { 
       // TODO Auto-generated catch block 
       Log.d("8","8"); 
       e.printStackTrace(); 
      } catch (IOException e) { 
       // TODO Auto-generated catch block 
       Log.d("9","9"); 
       e.printStackTrace(); 
      } 
      Log.d("10","10"); 
      player.start(); 
      Log.d("11","11"); 

にこのコードを試してみましたが、ログインしている私はプレーヤー=新しいMediaPlayerの()を書いたとき、私はあることを言うだろう

01-24 12:33:31.468: DEBUG/1(11457): 1 
01-24 12:33:31.488: DEBUG/2(11457): 2 
01-24 12:33:31.488: DEBUG/3(11457): 3 
01-24 12:33:31.518: DEBUG/AndroidRuntime(11457): Shutting down VM 
01-24 12:33:31.527: WARN/dalvikvm(11457): threadid=1: thread exiting with uncaught 
exception (group=0x4001d800) 
01-24 12:33:31.558: ERROR/AndroidRuntime(11457): FATAL EXCEPTION: main 
01-24 12:33:31.558: ERROR/AndroidRuntime(11457): java.lang.NullPointerException 

もう一つあります。上記のファイルmFile =新しいファイル( "/ data/data/com.lister.viewer/files/com.aaa.0001/audio.wav");それは例外をスローされていませんしかし、まだ私は音を聞くことができなかったとlogcatは以下のとおりです。

01-24 12:49:59.467: DEBUG/1(16108): 1 
01-24 12:49:59.507: DEBUG/2(16108): 2 
01-24 12:49:59.507: DEBUG/3(16108): 3 
01-24 12:50:00.358: DEBUG/4(16108): 4 
01-24 12:50:00.368: DEBUG/5(16108): 5 
01-24 12:50:00.368: DEBUG/10(16108): 10 
01-24 12:50:00.379: DEBUG/AudioSink(34): bufferCount (4) is too small and increased to 12 
01-24 12:50:00.408: DEBUG/11(16108): 11 

なぜそれが(4)が小さすぎると、私はそれのために必要とされる任意の複数の設定を????増やす必要が12に増加したバッファカウントを与えています?

答えて

0

private MediaPlayer mPlayer = new MediaPlayer(); 
File mFile = new File("data/data/package_name/files path"); 
FileInputStream fileInputStream = new FileInputStream(mFile); 
mPlayer.reset(); 
mPlayer.setDataSource(fileInputStream.getFD());   
mPlayer.prepare(); 

はまた、あなたのオーディオファイルは、世界読み込み可能な権限を持っていることを確認し、盲目的な仮定、[OK]を..

DDMSまたは返信用adb shell ls -al /data/data/package_name/myfile

+0

おかげでを使用して、それを確認してください。しかし、私は同じ例外が発生しています。 : – user1004987

+0

可能であれば、あなたのコードとスタックトレースに質問を投稿してください。 – user370305

+0

上記の質問を編集しました。私が間違っている場所を教えてください。 – user1004987

関連する問題