Soundpool ne joue que les 5 premières secondes du fichier. Pourquoi?

J'utilise Soundpool dans mon application, jusqu'à maintenant cela fonctionne bien, mais j'ai un fichier wav de 10 secondes. Malheureusement, soundpool ne joue que les 5 premières secondes. Comment faire de soundpool pour jouer toute la piste? J'ai convertis wav to – ogg et mp3 encore le même problème. Il ne joue que les 5 premières secondes. Toute aide serait très appréciée.

//set up audio player mSoundPool = new SoundPool(20, AudioManager.STREAM_MUSIC, 0); //load fx mSoundPoolMap.put(RAW_1_1, mSoundPool.load(this, R.raw.loop1, 1)); //playing soundpool case R.id.button1: mSoundPool.stop(mStream1); mStream1= mSoundPool.play(mSoundPoolMap.get(RAW_1_1), streamVolume, streamVolume, 1, LOOP_1_TIME, 1f); 

UPD Last: Peut-être que quelqu'un le trouvera ici et le lira. On dirait que soundpool ne peut pas jouer plus de 5 secondes. C'est son maximum, pour des sons plus longs utilisent MediaPlayer. J'espère que vous ne passerez pas tellement de temps que je l'ai fait)

  • Comment puis-je faire la largeur de la filière égale à la plus grande largeur disponible
  • Comment lier à Android Marketplace Review depuis l'application?
  • YouTubePlayer ne charge pas la vidéo d'annonce avec cueVideo ()
  • Connexion de deux périphériques Android via USB
  • Quelles langues de programmation puis-je utiliser sur Android Dalvik?
  • Android Device Monitor File Explorer ne fonctionne pas avec l'émulateur en cours d'exécution API 24+
  • Intégration de portefeuille Google à l'application Android
  • Le constructeur ArrayAdapter <chaîne> est indéfini
  • -Unzip a échoué ... L'accès est refusé-erreur lors de l'ajout de composants Android SDK à Eclipse
  • Comment créer un fichier jar à partir du studio Android
  • Vous ne pouvez pas commencer cet animateur sur une vue détachée! Effet révélateur
  • Bluetooth HCI snoop log non généré
  • 5 Solutions collect form web for “Soundpool ne joue que les 5 premières secondes du fichier. Pourquoi?”

    Je pense donc que vous avez atteint la limite 1M de SoundPool.

    SoundPool est un code dur de la taille du tampon comme 1M, pour tous les fichiers chargés, stockez au format pcm.

    Donc, il ne faut pas oublier ogg ou wav.

    Nous avons résolu un problème similaire en diminuant notre taux d'échantillonnage des effets * .ogg. Notre taux d'échantillonnage initial était de 44 kHz ~ et seulement 10 secondes de son joué, diminuant jusqu'à 16 kHz pour augmenter la jouabilité à 30 secondes

    Une solution a été trouvée dans cette discussion

    SoundPool conçu pour jouer de courts effets sonores. Pour jouer de la musique (gros fichiers audio), vous devez utiliser MediaPlayer

     // R.raw.audio_file - res/raw/audio_file.mp3 mediaPlayer = MediaPlayer.create(this, R.raw.audio_file); mediaPlayer.start(); 

    Cette activité fonctionne pour moi

     public class MainActivity extends Activity { private Integer soundID; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); this.setVolumeControlStream(AudioManager.STREAM_MUSIC); // Load the sound AudioManager audioManager = (AudioManager) getSystemService(AUDIO_SERVICE); float actualVolume = (float) audioManager .getStreamVolume(AudioManager.STREAM_MUSIC); float maxVolume = (float) audioManager .getStreamMaxVolume(AudioManager.STREAM_MUSIC); final float volume = actualVolume / maxVolume; SoundPool soundPool = new SoundPool(10, AudioManager.STREAM_MUSIC, 0); soundPool.setOnLoadCompleteListener(new OnLoadCompleteListener() { @Override public void onLoadComplete(SoundPool soundPool, int sampleId, int status) { @Override public void onLoadComplete(SoundPool soundPool, int sampleId, int status) { soundPool.play(soundID, volume, volume, 1, 0, 1f); try { Thread.sleep(5000); // play twice } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } soundPool.play(soundID, volume, volume, 1, 0, 1f); } }); } }); soundID = soundPool.load(this, R.raw.sound2, 1); //load fx //playing soundpool } } 

    Vous devez vous charger de l'asynchronisme du son et vérifier le cache audio – il peut être débordé.

    Lisez cet article http://www.google.by/url?http://www.vogella.com/articles/AndroidMedia/article.html

    C'est très attentif

    Votre fichier est probablement trop important. Essayez de passer de stéréo à mono, si vous n'avez pas besoin de stéréo de toute façon. Ou essayez de supprimer votre fichier.

    La réduction des fichiers a fonctionné dans mon cas.

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.