检查AVPlayer是否正在播放

时间:2013-11-06 21:52:33

标签: ios avplayer audio-player

我在ios设备上有一个歌曲的表格视图,如果我选择一行,我会推到AVPlayer开始播放所选歌曲的新视图。现在,如果我返回并选择另一行,推到视图,应用程序将开始播放新歌,同时继续播放已经运行的那首。

编辑: 我尝试使用这样的速率值没有成功,因为如果我把它放在我的viewdidload方法中,它总是输出“不播放”,即使正在播放一首歌:

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.

    appDelegate = (SimpleTableAppDelegate *)[[UIApplication sharedApplication] delegate];
    appDelegate.audioPlayer = [[AVPlayer alloc] init];
    if (appDelegate.audioPlayer.rate == 0.0f)
    {
        NSLog(@"not playing");
    } else {
    NSLog(@"already playing");
    }
}

2 个答案:

答案 0 :(得分:1)

在这一行

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

你似乎正在分配并初始化一个新的AVPlayer。因此,你得到一个“不玩”的结果就不足为奇了。只需忽略该行。

答案 1 :(得分:0)

AVPlayer具有rate属性,表示作为浮动播放的速度。 0.0f表示已停止。 playstop方法只会更改rate属性。

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.

    appDelegate = (SimpleTableAppDelegate *)[[UIApplication sharedApplication] delegate];
    //Stop potential existing audioPlayer prior to creating new player
    [appDelegate.audioPlayer stop];

    //Create new audio player
    appDelegate.audioPlayer = [[AVPlayer alloc] init];
}