Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone iOS:在静音模式下播放音频_Iphone_Objective C_Ipad_Ipod - Fatal编程技术网

Iphone iOS:在静音模式下播放音频

Iphone iOS:在静音模式下播放音频,iphone,objective-c,ipad,ipod,Iphone,Objective C,Ipad,Ipod,即使用户的静音/静音开关设置为静音/振动,让我的应用程序播放音频的正确方法是什么 一些背景: 我实际上是在调试阶段让它工作的,但是当我把我的应用提交给苹果,然后从应用商店下载时,音频在静默模式下被禁用了!以下是我如何在调试阶段使其工作的: UInt32 sessionCategory = kAudioSessionCategory_MediaPlayback; AudioSessionSetProperty(kAudioSessionProperty_AudioCategory,

即使用户的静音/静音开关设置为静音/振动,让我的应用程序播放音频的正确方法是什么

一些背景: 我实际上是在调试阶段让它工作的,但是当我把我的应用提交给苹果,然后从应用商店下载时,音频在静默模式下被禁用了!以下是我如何在调试阶段使其工作的:

UInt32 sessionCategory = kAudioSessionCategory_MediaPlayback;
AudioSessionSetProperty(kAudioSessionProperty_AudioCategory,
                        sizeof(sessionCategory), &sessionCategory);
使用以下方式播放音频:

NSString *path = [[NSBundle mainBundle] pathForResource:fileName ofType:@"mp3"];  
AVAudioPlayer *theAudio = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];  
theAudio.delegate = self;
[theAudio play];

我想它也有同样的作用,但是你有没有试过,像这样通过AVFoundation设置

 [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
    [[AVAudioSession sharedInstance] setActive: YES error: nil];

当用户不想听到声音时,为什么您希望应用程序播放声音?你确定这是你的用户想要的吗?我知道有一条规定,你不应该在静音模式下播放音频。这是一种糟糕的用户体验,但我的应用程序是一种例外,因为它的唯一目的是发出声音,而糟糕的用户体验实际上来自用户点击播放,期望听到声音,而不是什么都没有,没有意识到他们的静音开关被设置为静音。可能检测到静音状态并通知用户,在他们解除设备静音之前,他们不会听到声音。这更符合苹果的HIG标准。@夸张地说,这是一个好主意,谢谢你的建议。这同样有效,但我想不能保证一旦通过调试阶段它也不会失败。