2010-09-03 3 views
2

Je suis en train de jouer un audio d'application avec ipod le code que je utilise pour lire le fichier audio est:Comment utiliser MPMusicPlayerController avec AVAudioPlayer

code:

 [[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error: nil]; 
     UInt32 doSetProperty = 1; 
     AudioSessionSetProperty (kAudioSessionProperty_OverrideCategoryMixWithOthers, sizeof(doSetProperty), &doSetProperty); 
     [[AVAudioSession sharedInstance] setActive: YES error: nil]; 

     if(error) 
     { 
      NSLog(@"Some error happened"); 
     } 

    NSString *path = [[NSBundle mainBundle] pathForResource:effect ofType:type]; 
    myPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL]; 
    myPlayer.delegate = self; 
    myPlayer.numberOfLoops = -2; 
    myPlayer.volume = 1.0f; 
    [myPlayer play]; 

et jouer l'iPod musique J'utilise

code:

player = [MPMusicPlayerController iPodMusicPlayer]; 

Mon iPod joue bien jusqu'à ce que l'audio démarre la lecture mais une fois l'audio stoppé, je ne suis plus capable de revenir sur l'ipod pour jouer. J'utilise

code:

NSString *value = [[NSUserDefaults standardUserDefaults] stringForKey:@"sound"]; 

if([value compare:@"ON"] == NSOrderedSame && myPlayer != nil) 
{ 
    [myPlayer stop]; 
    [myPlayer release]; 
    myPlayer = nil; 
} 

NSError *error = nil; 

[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryAmbient error:&error]; 

if(error) 
{ 
    NSLog(@"Some error happened"); 
} 

pour arrêter l'audio, puis juste appeler

code:

[player play]; 

pour jouer la musique de votre iPod, mais il ne joue pas la musique, il dit que le titre est nul.

J'apprécierais vraiment si quelqu'un pourrait m'aider avec ceci.

Cordialement, Ankur

Répondre

1

Je suggère de déplacer la configuration de la session audio (y compris la catégorie ambiante) aux didFinishLaunchingWithOptions de votre délégué d'application et non à l'aide de la catégorie de lecture du tout. Vous pouvez toujours lire les sons AVAudio avec le réglage Ambient.

Si vous souhaitez supprimer la musique de l'iPod lorsque vous lisez des sons AV, vous ne devez utiliser que la catégorie Lecture. (Je ne suis pas exactement sûr de ce que vous essayez de faire.)

L'erreur que vous obtenez lorsque vous essayez de reprendre la musique de l'iPod suggère que votre objet MPMusicPlayerController réinitialise sa file d'attente de morceaux lorsqu'il est arrêté par le AVAudio retentit et vous devrez réinstaller le lecteur MP. "Title is null" sonne définitivement comme un pointeur qui pendouille ou similaire dans le lecteur MP.

1

Il n'est pas possible de lire l'audio de l'iPod dans AVAudioPlayer. Vous devez convertir le lien Asset de la bibliothèque depuis ipod, en utilisant * AVURLAsset en mp3 ou wav et l'enregistrer dans la bibliothèque de documents. IOS.5 a actuellement un bug dans la conversion (AudioExportSession) de l'ipod au fichier mp3, donc ce n'est pas possible. Pardon.

0

Vous devez reprendre le lecteur iPod après la fin de la lecture de myPlayer.

-(void) audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag { 
    [player play]; 
} 
Questions connexes