2011-01-09 1 views
4

J'ai implémenté un décodeur PCM qui écrit dans un objet AudioTrack.Message de notification du flux AudioTrack

Tout semble bien, cependant, j'ai besoin d'obtenir une sorte de notification de l'objet AudioTrack lorsque le dernier morceau écrit a cessé de jouer.

J'ai remarqué qu'il existe des méthodes de rappel telles que setNotificationMarkerPosition, cependant, je n'ai pas trouvé de documentation complète sur la façon de les utiliser.

Merci d'avance!

+0

hi chaoz, comment avez-vous implémenté le décodeur PCM? Je suis à la recherche d'un décodeur PCM pour décoder un son, toute aide me sera très utile. –

Répondre

2

Pour obtenir un rappel AudioTrack, vous pouvez définir un rappel marqueur ou utilisez la fonction de rappel périodique. J'ai vu des rapports de problèmes avec le marqueur, donc vous pouvez vouloir essayer les deux. Pour le rappel de marqueur, appelez d'abord le setNotificationMarkerPosition avec le numéro de cadre pour lequel vous souhaitez un appel.

Pour un rappel périodique, appelez à la place setPositionNotificationPeriod et appelez tous les x cadres.

Quoi qu'il en soit, vous aurez besoin d'appeler setPlaybackPositionUpdateListener pour enregistrer le rappel. Cela appellera deux méthodes, onMarkerReached s'il atteint un marqueur, ou onPeriodicNotification chaque nombre défini d'images. Vous pouvez choisir d'utiliser l'un ou l'autre, ou les deux. Les deux rappels renvoient l'instance de AudioTrack que vous avez utilisée pour le définir.

Par défaut, il rappellera dans le même thread l'instance AudioTrack a été créé. Vous pouvez également passer un gestionnaire lorsque vous enregistrez les rappels pour l'envoyer à un autre thread.

Questions connexes