iphone – 使用相同的按钮播放/暂停[AVAudioPlayer]

通过按一次UI按钮一次,可以通过IBAction播放声音,并使用AVAudioPlayer再次按下按钮暂停播放声音?此外,我想改变UIButton的状态,当声音播放时,而不是.

这是我的代码

- (IBAction)Beat
{
    if ([Media2 isPlaying])
    {
        [Media2 pause];
        [Button17 setSelected:NO];
    }

    else
    {
        Path = [[NSBundle mainBundle] pathForResource:@"Beat" ofType:@"mp3"];
        AVAudioPlayer *Media2 = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:Path] error:NULL];
        [Media2 setDelegate:self];
        [Media2 play];
        [Button17 setSelected:YES];
    }
}

解决方法

这是使用BOOL变量的简单方法.

在playDidLoad中设置播放= NO.

-(void)PlayStop{    
    if (playing==NO) {
        // Init audio with playback capability
        [play setBackgroundImage:[UIImage imageNamed:@"hmpause.png"] forState:UIControlStatenormal];

        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];

        [audioPlayer pause];

        playing=NO;
    }
}

相关文章

在有效期内的苹果开发者账号(类型为个人或者公司账号)。还...
Appuploader官网--IOS ipa上传发布工具,证书制作工具跨平台...
苹果在9月13号凌晨(北京时间)发布 iOS 16,该系统的设备可...
计算机图形学--OpenGL递归实现光线追踪
Xcode 14打出来的包在低版本系统运行时会崩溃,报错信息是Li...