2011-08-27 80 views
1

我試圖製作一個控制背景音樂音量的UISlider,無論我設置的值是音樂的音量。麻煩的是,當我在模擬器中運行應用程序並移動滑塊時,該卷保持原始卷的狀態,但不會更新。如何通過UISlider更新iPhone上的音樂音量?

我是編程新手,所以我仍然需要基礎知識的幫助。

這裏是我的viewcontroller.h:

@interface FifthViewController : UIViewController <AVAudioPlayerDelegate> { 

IBOutlet UISlider *slider; 
IBOutlet UIAlertView *alert; 
AVAudioPlayer *theAudio; 


} 


-(IBAction)alertbutton; 
-(IBAction)changeVolume; 
@end; 

這裏是viewcontroller.m:

- (void)viewDidLoad 

{ 
NSString *path = [[NSBundle mainBundle] pathForResource:@"background music" ofType:@"mp3"]; 
AVAudioPlayer* theAudio=[[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL]; 
theAudio.delegate = self; 
[theAudio play]; 
theAudio.numberOfLoops = -1;  
theAudio.volume=slider.value; 


[super viewDidLoad]; 
} 

我已連接 「滑」 到水平滑塊和播放聲音和循環。如果我在Xcode中將滑塊的值設置得更高或更低,那麼當我運行應用程序時,音量會相應調整。但如果在應用程序中更改滑塊的值,則音量保持不變。任何人都可以看看我的代碼,並告訴我我做錯了什麼,以及如何解決它?

+1

您可以發佈連接到您的滑塊 –

+0

你能否提供更多的細節動作的代碼?一些代碼可能?你如何設定音量?你用什麼框架來播放聲音? –

回答

0

假設您的控制器中有一個AVAudioPlayer安裝實例。

將滑塊設置爲從0.0運行到1.0並將其連接到一個操作。

-(void)volumeValueChange:(UISlider *)sender 
{ 
    (AVAudioPlayer *)myaudioplayer.volume = sender.value; 
} 
0

//.m實現方式,其中audioPlayer是AVAudioPlayer

的對象
-(void)volumeValueChange:(UISlider *)sender 
{ 
    audioPlayer.volume = sender.value; 
}