2013-03-07 17 views
5

Android'de ses ile ilgili bir sorunum var.AAC biçimi Android içinde

Kısa Soru:

ben aac formatında bir bütün Android cihazları oynamak ve kayıt ses gerekir. API 10'dan başlamanın mümkün olduğunu buldum, ancak BLU aygıtımda (2.3.5), MediaRecorder ve MediaPlayer kullanarak çalışır. Ancak HTC Nexus One'da çalışmıyor. Herhangi bir öneriniz var mı?

Uzun soru:

kaydetmek ve ben aşağıdaki kodu kullanıyorum AAC formatında Ses Ekleme. Oldukça basit ve aptalca, ama test için çalışıyor.

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 oluşturur ve dosyadan ses çalma;

Nexus üzerinde çalışmasını sağlamak için aac-decoder numaralı telefonu denedim - dosyayı sonuna kadar oynatmıyor (10 saniyelik dosyanın yalnızca 6 saniyesi oynatılıyor). Ve yukarıdaki kod tarafından kaydedilmiş ses çalmıyor.

Ayrıca, FFmpeg'i yüklemeyi denedim, ancak bu kitaplığı çalıştırmayı deneyimlemedim.

Bir şey önerebilir misin?

+0

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

+0

aac-decoder, aacplayer'ın kısa bir sürümüdür. Sonuna kadar aac dosyası oynatmaz ve cihaza kaydedilen sesi çalmaz. – Yanny

+0

Kısmi çözümler buldum. 1. Bazı cihazlarda ses çalınmıyor çünkü ben derectiory - data/data/com.myapp.player/files/music.aac dosyasından çalmaya çalışıyorum. 2. Bazı cihazlarda çalışmıyor ancak aacdecoder dosya sonuna kadar oynayabilir. Sadece AACPlayer aacPlayer = new MultiPlayer (clb, 200, 200); – Yanny

cevap

1

Ses türünü MP3 olarak değiştirerek bu sorunu çözüyorum çünkü bazı aygıtlar (Kindle Fire gibi) her yerden aac çalmıyor.

Benim önerim: Çapraz platform sesleri yapmak istiyorsanız - MP3 kullanın. Herhangi bir sesi lame encoder ile MP3'e dönüştürebilirsiniz.