IPhone OS4, Невозможно настроить громкость с помощью SystemSounds - PullRequest
0 голосов
/ 08 июля 2010

Я использую среду SystemSound для воспроизведения звуков в моем приложении.Для устройств с IOS3 это работает правильно.Но недавно я обновил операционную систему до IOS4, и у меня возникла странная проблема с громкостью.Теперь я не могу изменить громкость своих звуков во время игры, кажется, что эта платформа использует громкость звонка, и я не могу изменить эту громкость в приложении.У меня есть пара вопросов по этому поводу.

  1. Это ожидаемое поведение или у меня может быть что-то не так с моим кодом?
  2. Во-первых, почему это происходит с устройствами IOS4, а не сс более ранними версиями.
  3. Есть ли обходной путь, чтобы исправить это, не используя другую платформу?

Код, который я использую, выглядит примерно так:

SystemSoundID aSoundID;
OSStatus error = AudioServicesCreateSystemSoundID((CFURLRef)aFileURL, &aSoundID);

if (error == kAudioServicesNoError)
     self.soundID = aSoundID;
.

.

.

AudioServicesPlaySystemSound(self.soundID);

Буду очень признателен за вашу помощь!

Спасибо,

Хуан Пабло

Ответы [ 2 ]

2 голосов
/ 08 июля 2010

Я сам не использовал звук, но нашел несколько интересных вещей, которые кажутся актуальными (учитывая, что никто еще не ответил на ваш вопрос).

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

Однако класс AVAudioPlayer должен иметь все необходимое для управления звуками, громкостью и т. Д. Попробуйте использовать методы -initWithContentsOfURL:error:, –prepareToPlay и -play, а также volume собственность - я думаю, что это поможет вам, где вы хотите быть.

0 голосов
/ 13 октября 2010

1 & 2) У меня была та же проблема с iOS 4, я думаю, что это ожидаемое поведение в 4.0+. Я обнаружил, что это потому, что я не установил категорию Session:

3) Я сделалследующее и теперь оно работает.

NSError *setCategoryError = nil;  
[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error: &setCategoryError];  

if (setCategoryError) { 
 //handle error
}

http://developer.apple.com/library/ios/#documentation/Audio/Conceptual/AudioSessionProgrammingGuide/Cookbook/Cookbook.html#//apple_ref/doc/uid/TP40007875-CH6-SW6

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