我在 iOS 6.1 上使用 xcode 4.6 创建了一个应用程序,带有一个 TabBar 和 2 个不同的 tableView。
每个表视图从 file.plist 中读取一行,当点击一行时,您会加载一个 DetailView。DetailViewController 与 2 TableView 相同,但:
如果启动应用程序点击第一个按钮,我会看到带有我的表格和音频列表的 FirstView,如果我在列表中选择一个文件,我会加载一个详细信息视图并很好地监听我的文件,但如果现在点击 TabBar 上的第二个视图,我可以开始播放第二个视图中的其他音频文件,但我听覆盖到第一个音频和 AVplayer 不覆盖。
那里有我的编码:
从 TableView 加载 plist:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if([@"detailList" isEqualToString:segue.identifier]) {
NSIndexPath *index = [self.tableView indexPathForCell:sender];
[[segue destinationViewController] setSaved:[loadData objectAtIndex:index.row]];
}
}
在详细视图中:
if (mysound.rate == 1.0) {
UIImage *img = [UIImage imageNamed:@"Play_BT.png"];
[control setImage:img forState:UIControlStateNormal];
[mysound pause];
} else {
UIImage *img = [UIImage imageNamed:@"Pause_BT.png"];
[control setImage:img forState:UIControlStateNormal];
NSURL *url = [NSURL URLWithString:[saved objectForKey:@"audio"]];
mysound = [[AVPlayer alloc] initWithURL:url];
[mysound setAllowsExternalPlayback:YES];
[mysound setUsesExternalPlaybackWhileExternalScreenIsActive: YES];
[mysound play];
}
}
这里出现问题,这段代码工作得非常好,但是如果在标签栏上点击并从其他 plist 加载其他音频,我会听音频覆盖。
如何在 Override the NSURL *url = [NSURL URLWithString:[saved objectForKey:@"audio"]];
when change from tabbar 中使用 AVPlayer?
谢谢。