根据我的项目要求,我正在AVAudioplayer
工作。
我正在以编程方式创建播放,暂停,前进和后退。
我知道如何以编程方式创建前进和后退按钮。
但我不知道如何创建播放和暂停按钮(意味着在audioplayer用户点击播放按钮会自动显示暂停按钮,如果点击暂停按钮则会自动更改播放按钮。)。
如何以编程方式处理播放和暂停按钮这两个功能。
// Play Button creation
playButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
playButton.frame = CGRectMake(20, 380, 60, 60);
UIImage * buttonImage = [UIImage imageNamed:@“playButton.png"];
[playButton setImage:buttonImage forState:UIControlStateNormal];
[playButton addTarget:self action:@selector(playButtonPressed:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:playButton];
// Pause Button.
pauseButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
pauseButton.frame = CGRectMake(130, 380, 60, 60);
UIImage *pauseButton=[UIImage imageNamed:@“pauseButton.png”];
[pauseButton setImage:pauseButton forState:UIControlStateNormal];
[pauseButton addTarget:self action:@selector(pauseButtonPressed:)forControlEvents:UIControlEvents:UIControlEventsTouchUpInside];
[self.view addSubView:pauseButton];
答案 0 :(得分:1)
首先,您需要在xib上添加一个按钮以进行播放和暂停。 现在在xib中根据状态配置设置按钮的背景图像。
对于播放按钮 - 选择默认状态,然后将播放图像设置为按钮 对于暂停按钮,选择状态为已选择,然后将暂停图像设置为按钮
现在转到IBAction-
-(IBAction)playPauseButtonPressed:(id)sender
并将其分配给按钮
现在
//playpause button pressed
-(void)playPauseButtonPressed:(id)sender
{
if([sender isSelected])//means pause
{
//This will change the image of the button to play image
[sender setSelected:NO];
[audioPlayer pause];
[timer invalidate];
timer=nil;
}
else//means play
{
//This will change the image of the button to pause image
[sender setSelected:YES];
if(audioPlayer)
{
[audioPlayer release];
audioPlayer=nil;
}
url = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/%@", [[NSBundle mainBundle] resourcePath],[tmsAppDeledate.songTitleArray objectAtIndex:tmsAppDeledate.selectedSongIndex]]];
//path = [NSData dataWithContentsOfURL:url];
audioPlayer =[[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];
[[AVAudioSession sharedInstance] setDelegate: self];
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
audioPlayer.delegate=self;
[audioPlayer play];
if(timer)
{
[timer invalidate];
timer=nil;
}
[self startTimer];
}
}
}
简而言之,处理播放和暂停按钮的setSelected方法
答案 1 :(得分:0)
playButton = [[UIButton alloc] initWithFrame:CGRectMake(100, 200, 100, 100)];
[playButton setImage:[UIImage imageNamed:@"apple.png"] forState:UIControlStateNormal];
[playButton addTarget:self action:@selector(playButtonPressed:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:playButton];
pauseButton = [[UIButton alloc] initWithFrame:CGRectMake(100, 400, 100, 100)];
[pauseButton setImage:[UIImage imageNamed:@"stevejobs.png"] forState:UIControlStateNormal];
[pauseButton addTarget:self action:@selector(pauseButtonPressed:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:pauseButton];
答案 2 :(得分:-1)
//Create a button in viewDidLoad()
//UIButton *play = [UIButton buttonWithType:UIButtonTypeRoundedRect];
play = CGRectMake(100, 100, 160, 50);
-(void)PlayStop{
if (playing==NO) {
// Init audio with playback capability
[play setBackgroundImage:[UIImage imageNamed:@"hmpause.png"] forState:UIControlStateNormal];
//hmpause.png is a image showing pause button
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
[audioSession setCategory:AVAudioSessionCategoryPlayback error:nil];
audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:______ error:&err];
[audioPlayer prepareToPlay];
audioPlayer.delegate=self;
[audioPlayer play];
playing=YES;
}
else if(playing==YES){
[play setBackgroundImage:[UIImage imageNamed:@"Audioplay.png"] forState:UIControlStateNormal];
// 'Audioplay.png' is a image showing play button
[audioPlayer pause];
playing=NO;
}