2010-11-12 22 views
4

J'ai écrit une application censée être exécutée à la fois sur iPad et sur iPhone. J'utilise AVAudioPlayer pour lire le son. Maintenant, j'ai rencontré des problèmes avec les niveaux de volume. En cours d'exécution sur l'iPad, tout va bien, le niveau de volume du son en cours de lecture est très bien, même lors de l'exécution dans le simulateur de l'iPad.Le son de l'application fonctionne sur l'iPhone trop bas

Le problème se pose lorsque l'application est exécutée sur l'iPhone: alors que les niveaux de volume dans le simulateur iPhone sont très bien, les niveaux sur l'appareil sont très faibles.

Voici le code que je utilise sur les deux appareils:

if (audioPlayerAtmo==nil) 
{ 
    NSString *filename = [NSString stringWithFormat:@"Atmo_%i", currentPage]; 
    NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:filename ofType:@"mp3"]]; 
    AVAudioPlayer *tempPlayer =[[AVAudioPlayer alloc] initWithContentsOfURL:url error:NULL]; 
    tempPlayer.delegate = self; 
    //NSLog(@"tempPlayer.volume: %f", [tempPlayer volume]); 
    [tempPlayer setVolume:1.0f]; 
    //NSLog(@"tempPlayer.volume: %f", [tempPlayer volume]); 
    self.audioPlayerAtmo = tempPlayer; 
    [tempPlayer release]; 
    [audioPlayerAtmo play]; 
    btAtmo.selected = YES; 
} 
else // player exists 
{ 
    // ... 
} 

Est-ce que quelqu'un a une idée pourquoi le niveau est si bas sur l'iPhone alors que tout va bien dans le simulateur et sur l'iPad?

Merci d'avance pour votre aide.

données techniques: XCode 3.2.4 iPhone 4 (Vers 4.1.)

Répondre

6

Etes-vous sûr que vous le routage audio vers le haut-parleur correct?

UInt32 doChangeDefaultRoute = 1;   
AudioSessionSetProperty (kAudioSessionProperty_OverrideCategoryDefaultToSpeaker, sizeof (doChangeDefaultRoute), &doChangeDefaultRoute); 
+0

Merci beaucoup pour votre aide! Ça fonctionne maintenant. – MatthiasC

+0

+1 Bonne réponse! Fonctionne comme un charme! – Groot

+0

avons-nous besoin d'écrire cette ligne de code à chaque instance, ou écrire à la fois quelque part? –