2

OutputStream(Bytes配列)を書き込んでmp3ファイルを作成し、メディアプレーヤーのsetDataSourceにmp3ファイルパスを入れて、メディアプレーヤーを起動します。アンドロイドでmediaplayerを実行するsetdatasourceを更新するには

実行時にストリーム(バイト配列)を追加して実行中のmp3ファイルを更新すると、メディアプレーヤーは更新されません。どうすればこの問題を解決できますか? この問題に関してお手伝いをしてください。ここで

は私のコードです:あなたはこの

最初にファイルが追加されたり、次に再生しようとしているときに設定する必要があるブール変数を宣言しようとすることができ

InputStream inputStream = socket.getInputStream(); 

ByteArrayOutputStream dataOutputStream = new ByteArrayOutputStream();  
int count=0 
    while(true){ 
       byte[] buffer = new byte[1096*50]; 
       int bytesRead = inputStream.read(buffer); 
       dataOutputStream.write(buffer, 0, bytesRead); 

       String fpath = "/sdcard/" + "sha" + ".txt"; 
       File file = new File(fpath); 
       // If file does not exists, then create it 

    if (!file.exists()) {        
         file.createNewFile(); 
         } 
    try{ 

     OutputStream outputStream = new FileOutputStream(fpath); 
     dataOutputStream.writeTo(outputStream); 
     count++; 
      if (count==500){ 
       playMp3(fpath); 
          } 
       } 


    private void playMp3(String path) { 

     try { 
      MediaPlayer mediaPlayer = new MediaPlayer(); 
      mediaPlayer.reset(); 
      mediaPlayer.setDataSource(path); 
      mediaPlayer.prepare(); 
      mediaPlayer.start(); 

     } catch (IOException ex) { 
      String s = ex.toString(); 
      ex.printStackTrace(); 
     } 
    } 
+0

関連性の高いコードを投稿してください。 –

答えて

0

public boolean nextplay=true; 

再生するファイルがない(または既存のファイルの最後に追加されていない)場合は、それを偽にします。

 MediaPlayer mediaPlayer = new MediaPlayer(); 
     mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { 
      @Override 
      public void onCompletion(MediaPlayer mp) { 
       if(nextplay) 
       { 
       mp.stop(); 
       mp.reset(); 
       mp.setDataSource(second_file); 
       mp.prepare(); 
       mp.start(); 
       } 
       else 
       { 
       mp.stop(); 
      } 
      } 
      }); 
+0

ありがとうございました。このコードを実行すると、例外が発生します –

+0

ありがとうakhil。しかし、このコードを実行すると、リンク[リンク](https://jpst.it/IROw) –

+0

で私は少し私の答えに編集しました。それは –

関連する問題