TabBar と 2 つの異なる tableView を使用して、iOS 6.1 で xcode 4.6 を使用してアプリを作成します。
各テーブル ビューは file.plist から行を読み取り、行をタップすると DetailView を読み込みます。DetailViewController は 2 TableView でも同じですが、次の点が異なります。
最初のボタンをタップしてアプリを起動すると、テーブルとオーディオ リストを含む FirstView が表示されます。リストから 1 つのファイルを選択すると、詳細ビューが読み込まれ、ファイルが非常にうまくリッスンされますが、TabBar の 2 番目のビューをタップすると、再生を開始できます。 2番目のビューからの他のオーディオファイルですが、最初のオーディオにオーバーレイを聞き、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 から他のオーディオをロードすると、オーディオオーバーレイが聞こえます。
タブバーからの変更時にオーバーライドで AVPlayer を使用するにはどうすればよい NSURL *url = [NSURL URLWithString:[saved objectForKey:@"audio"]];
ですか?
ありがとう。