0

问题是 AVAudioPlayer 本身的行为应该如此。当设备未处于静音模式(静音/振铃开关打开)时,它会播放背景音乐。当静音开关打开时,它也尊重这个状态,不播放背景音乐。

但是,当我在 MPMoviePlayer 中播放视频时,AVAudioPlayer 在静音模式下播放的一个特殊情况是。

在我的应用程序中,在播放电影之前首先播放 BG 声音。

任何人都可以帮忙吗?这仅在我播放电影时发生。

有关其他详细信息:使用的
BG 循环 - m4a 类型
使用的电影类型 - m4v

我还发现这种情况在 iOS 5 中反复出现,但有时即使在最新版本中也会发生。

我在 Google、Apple 的文档和 SO 中到处都进行了研究,但我找不到关于这个特定场景的任何信息。

我什至尝试将 AVAudioSession 的类别显式设置为 AVAudioSessionCategoryAmbient,然后调用 setActive。(也尝试过该setCategory:withOptions:error方法,但应用程序由于某种原因崩溃 - 在设备上测试)

当我尝试使用AVAudioPlayerDelegate.

帮助任何人?:(

4

2 回答 2

1

尝试以这种方式设置音频会话

AVAudioSession *audioSession = [AVAudioSession sharedInstance];
        NSError *err = nil;
        [audioSession setCategory :AVAudioSessionCategoryPlayAndRecord error:&err];
        if(err){
            NSLog(@"audioSession: %@ %d %@", [err domain], [err code], [[err userInfo] description]);
            return;
        }
        [audioSession setActive:YES error:&err];
        err = nil;
        if(err){
            NSLog(@"audioSession: %@ %d %@", [err domain], [err code], [[err userInfo] description]);
            return;
        }
于 2013-04-22T12:04:03.147 回答
1
NSURL *url = [NSURL URLWithString:self.videoURL];
            MPMoviePlayerViewController *mpvc = [[MPMoviePlayerViewController alloc] initWithContentURL:url];
            NSError *_error = nil;
            [[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error: &_error];
            [self presentMoviePlayerViewControllerAnimated:mpvc];

添加这个框架

#import <AVFoundation/AVFoundation.h>

试试这样...

于 2013-04-22T09:47:56.863 回答