我在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");
}
}
答案 0 :(得分:1)
在这一行
appDelegate.audioPlayer = [[AVPlayer alloc] init];
你似乎正在分配并初始化一个新的AVPlayer。因此,你得到一个“不玩”的结果就不足为奇了。只需忽略该行。
答案 1 :(得分:0)
AVPlayer具有rate
属性,表示作为浮动播放的速度。 0.0f
表示已停止。 play
和stop
方法只会更改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];
}