1

MPMoviePlayerController で動画の音声をバックグラウンドで再生したい。過去のビデオは実行されていますが、バックグラウンド サウンドが停止します。バックグラウンドとサウンドを継続したい(バックグラウンドのみのサウンドで)。info.plist のバックグラウンド モードは「オーディオ」に設定されています

    - (void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];

    [[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
    [self becomeFirstResponder];
}

- (void)viewWillDisappear:(BOOL)animated {
    [super viewWillDisappear:animated];


    [[UIApplication sharedApplication] endReceivingRemoteControlEvents];
    [self resignFirstResponder];
}




- (void)Play_Video{
    [[AVAudioSession sharedInstance] setDelegate: self];
    [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
    [[AVAudioSession sharedInstance] setActive: YES error: nil];


    self.movieController = [[MPMoviePlayerController alloc] init];

    self.movieController.view.frame = self.view.bounds;
    self.movieController.view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin;
    self.movieController.backgroundView.backgroundColor = [UIColor clearColor];
    self.movieController.view.hidden = NO;
    self.movieController.controlStyle = MPMovieControlStyleEmbedded;
    [self.view addSubview:self.movieController.view];
    self.movieController.useApplicationAudioSession = NO;

    [UrlBlock VideoURL:url success:^(NSURL *URL) {

        if (self.movieController)
            self.movieController.contentURL = URL;
        else
            self.movieController = [[MPMoviePlayerController alloc] initWithContentURL:URL];

    } failure:^(NSError *error) {
        [self performSelectorOnMainThread:@selector(Alert:) withObject:error waitUntilDone:NO];
    }];


}
4

1 に答える 1

0

これは明らかで、貼り付けていないだけかもしれませんが、- (BOOL) canBecomeFirstResponderメソッドをオーバーライドしましたか?

すなわち

- (BOOL) canBecomeFirstResponder {
    return YES;
}
于 2012-09-13T20:40:18.127 に答える