我在 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?
谢谢。