2008-12-22 4 views
1

Mon application a besoin de lire des fichiers audio et je veux fondre le son de l'iPod, lire mon fichier, puis dès que mon audio arrête de jouer de nouveau sur l'iPod (comme l'iPhone gère la musique iPod quand un appel entrant est disponible en)Pourquoi l'audio de l'iPod ne retombe-t-elle pas après que mon application l'a fait disparaître?

J'installe session audio de mon application pour être kAudioSessionCategory_MediaPlayback puis juste avant que je joue mon dossier que j'appelle AudioSessionSetActive (true) alors quand mon dossier se termine la lecture que j'appelle AudioSessionSetActive (false)

Qu'est-ce qui se passe est que l'audio de l'iPod fondu avec l'appel AudioSessionSetActive (true), mais il ne se fane-in à nouveau après avoir appelé AudioSessionSetActive (false)

J'utilise la classe AVFoundation pour lire mon audio, je joue dans ma méthode déléguée audioPlayerDidFinishPlaying et c'est là que j'appelle AudioSessionSetActive (false).

Qu'est-ce qui me manque ici? Pourquoi l'iPod ne se fade-t-il pas lorsque je désactive ma session audio? Est-ce que j'ai la mauvaise catégorie de session audio pour cela?

Répondre

2

J'ai reçu une réponse d'Apple à ce sujet. Malheureusement, ce n'est pas possible avec SDK 2.2. J'ai soumis une demande de fonctionnalité, alors qui sait peut-être ajouter cette fonctionnalité dans le futur.

4

Ok, c'est adorable. Dans iPhone OS3, voir l'exemple d'AddMusic.

Essentiellement, vous faites ceci:

#import <MediaPlayer/MediaPlayer.h> 
... 
[[MPMusicPlayerController iPodMusicPlayer] pause] 
...(play your audio, with AmbientSound category) 
[[MPMusicPlayerController iPodMusicPlayer] play] 

Ceci est fondamental. Vous pouvez également ajouter un fondu en bouclant le changement de volume, etc.

Questions connexes