2016-10-27 11 views
0

これまでに試したこと: -Base64でエンコードされたオーディオをAndroidで再生する方法は?

  • オーディオファイルのBase64でエンコードされた文字列を持っています。

ここで私はこのようにプレイしようとしています。

public void PlayAudio(String base64EncodedString){ 
     try 
     { 
      String url = "data:audio/mp3;base64,"+base64EncodedString; 
      Uri uri = Uri.parse(url); 
      mediaPlayer.setDataSource(MainActivity.this, uri); 
      /*mediaPlayer.prepare();*/ 
      mediaPlayer.start(); 
     } 
     catch(Exception ex){ 
      System.out.print(ex.getMessage()); 
     } 
    } 

private void playMp3(byte[] mp3SoundByteArray) { 
     try { 
      // create temp file that will hold byte array 
      File tempMp3 = File.createTempFile("kurchina", "mp3", getCacheDir()); 
      tempMp3.deleteOnExit(); 
      FileOutputStream fos = new FileOutputStream(tempMp3); 
      fos.write(mp3SoundByteArray); 
      fos.close(); 

      // resetting mediaplayer instance to evade problems 
      mediaPlayer.reset(); 

      // In case you run into issues with threading consider new instance like: 
      // MediaPlayer mediaPlayer = new MediaPlayer(); 

      // Tried passing path directly, but kept getting 
      // "Prepare failed.: status=0x1" 
      // so using file descriptor instead 
      FileInputStream fis = new FileInputStream(tempMp3); 
      mediaPlayer.setDataSource(fis.getFD()); 

      //mediaPlayer.prepare(); 
      mediaPlayer.start(); 
     } catch (IOException ex) { 
      String s = ex.toString(); 
      ex.printStackTrace(); 
     } 
    } 

しかし、音声が再生されていません。

いずれにしても私を助けてくれるかもしれません。

答えて

0

実際には、Base64でエンコードされた文字列を再生する前にデコードする必要があります。デコード手順を確認してくださいhere

+0

ありがとうございます。一度それをチェックさせてください。あなたに戻ってきます。 – AndroidHacker

+0

動作しません...私はWeb上でオーディオファイルをエンコードしているので、何らかのエンコードの問題がありますか? – AndroidHacker

+0

それは可能です!それを確認して、標準のエンコード方法を検索するだけで済みます。 – Jordan

関連する問題