iphone, как воспроизводить звук даже в беззвучном или беззвучном режиме? - PullRequest
2 голосов
/ 01 мая 2010

как тема ... это возможно?

Спасибо

еще раз, я прикрепил код следующим образом, пожалуйста, проверьте, какой шаг не так. Спасибо.

    //@step
AudioSessionInitialize (NULL, NULL, NULL, NULL);
AudioSessionSetActive(true);
UInt32 sessionCategory =   kAudioSessionCategory_MediaPlayback;
OSStatus error = AudioSessionSetProperty (kAudioSessionProperty_AudioCategory,                                            sizeof(sessionCategory),&sessionCategory);

if (error) 
    printf("ERROR AudioSessionSetProperty ! %d\n", error);

//@step 
NSString* filePath = @"AlarmClockBell.caf";
[Util restoreResourceFile:filePath];
filePath =[Util getFileFullPathFromSysDoc:filePath];
NSURL *soundFileURL = [NSURL fileURLWithPath:filePath];   
NSError* error ;
AVAudioPlayer * audioPalyer = [[AVAudioPlayer alloc] initWithContentsOfURL: soundFileURL error: &error];
if (nil == audioPalyer) 
{
    AppTrace3(self, @"Faild to play", soundFileURL, error);
    return FALSE;
}
[audioPalyer prepareToPlay];
[audioPalyer setVolume: 5 ];
[audioPalyer setDelegate: self];
 audioPalyer.numberOfLoops = 10;

[audioPalyer play];

спасибо ...

Ответы [ 3 ]

6 голосов
/ 01 мая 2010

Если вы загляните в документы в разделе Audio Session Categories, вы найдете несколько режимов, которые вы можете установить, чтобы сообщить системе, как ваше приложение планирует использовать аудио. По умолчанию установлено значение AVAudioSessionCategorySoloAmbient, которое отслеживает звонок / бесшумный переключатель и блокировку экрана.

Чтобы ваше приложение игнорировало настройки звонка / беззвучного переключателя, вы можете попробовать изменить категорию:

#import <AudioToolbox/AudioToolbox.h>

AudioSessionInitialize (NULL, NULL, NULL, NULL);
AudioSessionSetActive(true);

UInt32 sessionCategory = kAudioSessionCategory_MediaPlayback;
AudioSessionSetProperty (kAudioSessionProperty_AudioCategory, 
                         sizeof(sessionCategory),&sessionCategory);

Если вы хотите, чтобы аудио iPod продолжало воспроизводиться в фоновом режиме, вы также должны отметить kAudioSessionProperty_OverrideCategoryMixWithOthers.

1 голос
/ 18 октября 2013

Начиная с iOS 6, есть альтернативный метод, более компактный, чем ответ Рамина .

#import <AVFoundation/AVFoundation.h>

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

Чтобы фоновое аудио из других приложений продолжало воспроизводиться, добавьте параметр AVAudioSessionCategoryOptionMixWithOthers:

[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback
                                 withOptions:AVAudioSessionCategoryOptionMixWithOthers
                                       error:nil];

Дополнительные сведения содержатся в справочнике по классу AVAudioSession от Apple .

.
0 голосов
/ 01 мая 2010

Должно быть, у меня была пара игр, в которых (даже когда он в беззвучном режиме) воспроизводился звук. К сожалению, это было обнаружено при попытке тайно играть в игры в классе.

Что касается того, как на самом деле это сделать, я действительно понятия не имею.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...