2010-07-08 15 views
5

Ich erstelle eine Anwendung, in der Ton abgespielt wird, wenn eine Taste gedrückt wird und ein UISlider benutzt wird, mit dem die Lautstärke angepasst werden kann. Manchmal ist die Lautstärke zu hoch und manchmal auch zu niedrig, selbst wenn die Lautstärke des iPhones erhöht ist full.Wow kann ich die Lautstärke immer hoch halten? jede mögliche Art, Systemvolumen mit Schiebereglervolumen zu integrieren? Mit MPVolumview wird meinen App bekommen abgelehnt ich denke .. der Code i auf Tastendruck verwende ist derLautstärkeregler mit UIslider Iphone?

NSString* resourcePath = [[NSBundle mainBundle] resourcePath]; 
resourcePath = [resourcePath stringByAppendingString:@"/sound.mp3"]; 
NSLog(@"Path to play: %@", resourcePath); 



player = [[AVAudioPlayer alloc] initWithContentsOfURL: 
      [NSURL fileURLWithPath:resourcePath] error:&err]; 

    player.delegate = self; 
    [player play]; 
    player.volume=.50; 
    player.numberOfLoops=-10; 

-(IBAction)slidervaluechanged 
{ player.volume=slider.value; } 

}

Antwort

3

Hemant,

Die maximale Lautstärke Sie haben können, ist, wenn player.volume ist gleich 1.0 (solange die Lautstärke des Klingeltons ebenfalls maximal ist).

Wenn die Ruftonlautstärke nicht maximal ist, können Sie nur so hoch gehen wie was auch immer es ist, indem wieder über den Wert von 1.0

Allerdings könnten Sie implementieren die MPVolumeView (ich bin fast sicher, wie Pandora macht es) und dann verwenden Sie stattdessen diesen Schieberegler in Ihrer App. Dann können Sie einfach player.volume immer gleich 1.0 setzen und den Schieberegler die Lautstärke des Klingeltons ändern lassen.

Mehr Informationen über, wenn Sie wollen MPVolumeView verwenden: http://developer.apple.com/iphone/library/documentation/MediaPlayer/Reference/MPVolumeView_Class/Reference/Reference.html und How do you implement an MPVolumeView?

Ich kann mich irren, aber ich denke, Apple MPVolumeView erlaubt, wenn Sie es verwenden, wie sie ist. Sie sagen in der Klassenreferenz, dass es nun die Lautstärke des Geräteringers ändert, wenn Sie den Schieberegler bewegen (was er nicht gewohnt war und deshalb mussten die Leute auf private API zugreifen). Ich werde versuchen, es bei meinem nächsten Update hier in einer Woche zu implementieren. Wenn ich abgelehnt werde, komme ich zurück und aktualisiere diesen Beitrag, um es alle wissen zu lassen.