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

标签 iphone objective-c xcode avaudioplayer

如何通过按一次 UIbutton 使用 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 变量的简单方法。

viewDidLoad中设置playing = 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;
    }
}

关于iphone - 使用相同的按钮播放/暂停 [AVAudioPlayer],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6635604/

相关文章:

ios - NSInvalidArgumentException - 无法识别的选择器发送到实例

ios - Objective-C:正确的传递方法

ios - 将值从按钮添加到 UILabel

ios - 层 <Metal Layer : 0x17069b850> 无可绘制对象

iphone - 如何从 .ipa 文件获取源代码?

html - mailto 无法在 iPhone 的 Safari 上加载电子邮件,但可以在 iPad 上使用

iphone - 我如何知道何时可以安全地忽略 All Exceptions 断点上的 __cxa_throw?

Objective-C Base64 解码返回 nil

iphone - iOS:如何使用下载的 CSV 填充 CoreData

ios - Facebook Connect 始终仅在 iPad 上将应用程序返回到初始屏幕