1

我在 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");
    }
}
4

2 回答 2

1

在这一行

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

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

于 2013-11-07T00:11:49.760 回答
0

AVPlayer 有一个rate属性,将播放速度指示为浮点数。0.0f表示停止。playandstop方法只是改变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];
}
于 2013-11-06T22:02:35.963 回答