【问题标题】:AVPlayer - how to reset play buttonAVPlayer - 如何重置播放按钮
【发布时间】:2014-06-11 21:06:44
【问题描述】:

我正在开发一个在线流式传输音频文件的应用程序。下面的代码可以正常工作,但是当音频文件结束时,播放按钮不会重置。该按钮仍被按下,在用户可以再次播放音频文件之前,用户必须按下该按钮2次。

我的问题是:如何在音频文件结束后自动重置播放按钮?

这是我的代码:

-(IBAction)togglePlayPauseTapped:(id)sender
    {
        if(self.togglePlayPause.selected) {
            [self.audioPlayer pause];
            [self.togglePlayPause setSelected:NO];
        } else {
            [self.audioPlayer play];
            [self.togglePlayPause setSelected:YES];

            self.audioPlayer = [[AVPlayer alloc] init];
            NSString *urlString = @"MYURL";
            NSURL* urlStream = [NSURL URLWithString:urlString];
            AVPlayerItem * currentItem = [AVPlayerItem playerItemWithURL:urlStream];

            [self.audioPlayer replaceCurrentItemWithPlayerItem:currentItem];
            [self.audioPlayer play];




        }

    }`

【问题讨论】:

    标签: ios stream mp3 avplayer


    【解决方案1】:

    将audioPlayer的delegate设置为self,确保指定的ViewController能够接收到AVAudioPlayer Delegate的调用。然后实现audioPlayerDidFinishPlaying方法并调用你的togglePlayPauseTapped方法:

    - (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag
    {
        [self togglePlayPauseTapped:nil];
    }
    

    总数应该是这样的:

    编辑:

    然后改变这个

    self.audioPlayer = [[AVPlayer alloc] init];
    

    到这里:

    self.audioPlayer = [[AVAudioPlayer alloc] init];
    

    【讨论】:

    • 我尝试了上面的示例,但我遇到了 self.audioplayer.delegate=self; 的问题
    • 您确定在界面中添加了 吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-22
    相关资源
    最近更新 更多