2013-03-07 17 views
5

アンドロイドのオーディオに問題があります。AndroidのAAC形式

短い質問:

私はAAC形式ですべてのAndroidデバイスを再生し、音声を録音する必要があります。 API 10から始めることができますが、BLUデバイス(2.3.5)ではMediaRecorderMediaPlayerを使って動作します。 しかし、HTC Nexus Oneでは動作しません。 ご意見はありますか?

ロング質問:

私は次のコードを使用していAAC形式の音声を録音して再生します。それはかなり単純で愚かですが、それはテストのために働きます。

String pathForAppFiles = getFilesDir() 
       .getAbsolutePath(); 
     pathForAppFiles += "/bla.mp4"; 
     if (audioRecorder == null) { 

      File file = new File(pathForAppFiles); 
      if (file.exists()) 
       file.delete(); 

      audioRecorder = new MediaRecorder(); 

      audioRecorder 
        .setAudioSource(MediaRecorder.AudioSource.MIC); 

      audioRecorder 
        .setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); 

      audioRecorder 
        .setAudioEncoder(MediaRecorder.AudioEncoder.AAC); 

      audioRecorder.setOutputFile(pathForAppFiles); 

      try { 
       audioRecorder.prepare(); 
      } catch (IllegalStateException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } catch (IOException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 

      audioRecorder.start(); 

     } else { 
      audioRecorder.stop(); 
      audioRecorder.release(); 
      audioRecorder = null; 

      new AudioUtils().playSound(pathForAppFiles); 
     } 

new AudioUtils().playSound(pathForAppFiles); - ファイルからMediaPlayerを作成してサウンドを再生します。

ネクサスで動作させるには、aac-decoderを試しました。ファイルを最後まで再生しません(10秒間のファイルを6秒間再生します)。そして、上記のコードで記録されたサウンドは再生されません。

また、私はFFmpegをインストールしようとしましたが、このライブラリを動作させる経験はありません。

お勧めできますか?

+0

https://code.google.com/p/aacplayer-android/ –

+0

aac-decoderはaacplayerの短いバージョンです。最後までaacファイルを再生せず、デバイスで録音したサウンドを再生しません。 – Yanny

+0

部分解が見つかりました。 1.一部のデバイスでは、オーディオファイル(データ/データ/ com.myapp.player/files/music.aac)から再生しようとしているため、オーディオが再生されませんでした。 2.一部のデバイスでは動作しませんが、aacdecoderはファイルを最後まで再生できます。小さなバッファサイズに設定してください。AACPlayer aacPlayer =新しいMultiPlayer(clb、200、200); – Yanny

答えて

1

一部のデバイス(Kindle Fireなど)がどこからでもaacを再生しないため、オーディオタイプをMP3に変更することでこの問題を解決しました。

私の推奨は: クロスプラットフォームのサウンドを作成する場合は、MP3を使用します。任意のサウンドをlame encoderでMP3に変換できます。

関連する問題