Est-ce que quelqu'un sait comment résoudre ce message d'avertissement?
07-14 10: 38: 55.411 V/tracker-audiotest (22426): Thread d'enregistrement :: run (): démarre l'enregistrement audio. 07-14 10: 45: 51.490 "W/AudioTrack (607): AUDIO_OUTPUT_FLAG_FAST refusée par le client en raison d'un taux d'échantillonnage incorrect (44100 vs 48000) "
Lorsque je teste la latence audio sur Android 4.4, je constate un retard soudain après la lecture de ce message d'avertissement. Mais je ne change pas la fréquence d'échantillonnage pendant le test et le réglage initial est en 48kHz. Ce message d'avertissement survient après 7 minutes d'enregistrement.
Vous pouvez tester ce projet sur votre appareil si nécessaire. Le projet est dans GitHub:
Le AUDIO_OUTPUT_FLAG_FAST est refusé car vous utilisez un débit différent de celui pris en charge par le matériel. Vous devez interroger le taux d'échantillonnage pris en charge par le matériel et enregistrer à ce taux plutôt que de le coder en dur à 48 kHz.
Vous pouvez essayer d'utiliser l'interface de fonction Java:
AudioManager myAudioMgr = (AudioManager) getSystemService (Context.AUDIO_SERVICE);
nativeSampleRate = myAudioMgr.getProperty (AudioManager.PROPERTY_OUTPUT_SAMPLE_RATE);
pour récupérer la fréquence d'échantillonnage matérielle par défaut sur votre téléphone, utilisez-la pour créer le lecteur.
Essayez également d'utiliser: NativeSampleBufSize = myAudioMgr.getProperty (AudioManager.PROPERTY_OUTPUT_FRAMES_PER_BUFFER);
pour obtenir la taille de tampon audio par défaut (en images) et l’utiliser pour la lecture.
Vous pouvez consulter l'exemple de code JNI audio-echo si JNI vous convient.
Essayez de changer le taux d'échantillonnage à
cadres/base /
frameworks/av /
matériel/libhardware
emplacements.
le taux d'échantillonnage par défaut est 44100 essayez de définir le taux d'échantillonnage souhaité (vos fichiers audio ont). ça va marcher.
à votre santé.