0

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"]];ですか?

ありがとう。

4

1 に答える 1