2010-12-01 2 views
2

Как играть в звуковой файл в тихом режиме iPhone sdk?Как играть в звуковой файл в тихом режиме iPhone sdk?

Я пытаюсь играть звуковой файл в автоматическом режиме, но результат равен нулю

я попробовал этот код

SystemSoundID soundID; 
AudioServicesCreateSystemSoundID((CFURLRef)[NSURL fileURLWithPath:fullpath],&soundID); 
AudioServicesPlaySystemSound (soundID); 

, когда я импортировать в файл заголовка

#import <AudioToolbox/AudioToolbox.h> 

создавать ошибки как

ошибка: ожидаемый идентификатор до '\ x786f7073'

Asnwer Как можно скорее .....

Заранее спасибо

Regard

StupidiPhoneDeveloper

ответ

3

Благодаря Buddy для такого быстрого ответа я нашел решение

следующего кода вы можете проверить свой iPhone Profile (Regular/Бесшумный) и вот код

CFStringRef state; 
UInt32 propertySize = sizeof(CFStringRef); 
AudioSessionInitialize(NULL, NULL, NULL, NULL); 
AudioSessionGetProperty(kAudioSessionProperty_AudioRoute, &propertySize, &state); 

if(CFStringGetLength(state) == 0) { 
    //SILENT 
NSLog(@"Silent switch is on"); 

    //create vibrate 
    AudioServicesPlaySystemSound(kSystemSoundID_Vibrate); 
    //this 2 line below use to play audio even in silent/vibrator mode too  

    UInt32 audioCategory = kAudioSessionCategory_MediaPlayback; 
    AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(UInt32), &audioCategory); 
} 
else { 
    //NOT SILENT 
    NSLog(@"Silent switch is off"); 
} 

И Об этой ошибке

error: expected identifier before '\x786f7073' 

Просто напишите ниже строки в каждом файле заголовка класса

#import <AudioToolbox/AudioToolbox.h> 
+0

gr8 work, VO :) – 2011-12-22 12:09:37

3

вы должны определить категорию аудио сеанса, который не подавлен немого переключатель.

Заканчивать аудио страницу сеанса на сайте Dev яблочного: http://developer.apple.com/library/ios/#documentation/Audio/Conceptual/AudioSessionProgrammingGuide/AudioSessionCategories/AudioSessionCategories.html%23//apple_ref/doc/uid/TP40007875-CH4-SW1

Может быть AVAudioSessionCategoryPlayAndRecord является один вам нужно.

+0

Спасибо за вашу помощь – 2011-02-04 16:13:04

Смежные вопросы