Звук работает в симуляторе не в iphone 3GS - PullRequest
1 голос
/ 24 июля 2011

Я обыскал весь сайт и попробовал все возможные варианты, чтобы звук работал в приложении для iPhone, которое работает на симуляторе.

В частности, я попробовал то, что было предложено здесь: Звук работает в эмуляторе, а не в реальном iPhone

Кроме того, я попытался запустить оба файла ".wav" и ".caf" из моего приложения со следующим кодом:

CFURLRef soundFileURLRef = NULL;
soundFileURLRef = CFBundleCopyResourceURL (CFBundleGetMainBundle (),
    CFSTR ("applause"),CFSTR ("wav"),NULL );
NSLog(@"Clap Path: %s", CFURLGetString(soundFileURLRef));
AudioServicesCreateSystemSoundID (soundFileURLRef,&clappingFileID_ );

AudioServicesPlaySystemSound (clappingFileID_);

На основании других предложений я также изменил код на следующий:

NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDir = [paths objectAtIndex:0];
NSString *clapPath = [documentsDir 
                       stringByAppendingPathComponent: @"applause.wav"];
// Put down default db if it doesn't already exist
NSFileManager *fileManager = [NSFileManager defaultManager];
if (![fileManager fileExistsAtPath:clapPath]) {
    NSString *defaultClapPath = [[NSBundle mainBundle] 
                                  pathForResource:@"applause" ofType:@"wav"];
    if (defaultClapPath) {
        [fileManager copyItemAtPath:defaultClapPath toPath:clapPath error:NULL];
    }
}


// NSString *clapPath = [[NSBundle mainBundle] pathForResource:@"applause" ofType:@"caf"];
CFURLRef clapURL = (CFURLRef ) [NSURL fileURLWithPath:clapPath];
AudioServicesCreateSystemSoundID (clapURL, &clappingFileID_);

NSLog(@"calling initSounds..");
AudioServicesPlaySystemSound (clappingFileID_);

Обе вышеуказанные части кода работают для симулятора, но не для iphone.

  • Также проверил свойства файла .wav, выполнив getInfo. это говорит: Битрейт: 176 кбит / с Частота дискретизации: 11,025 кГц Размер выборки: 16 бит Размер 62 Кб

  • Также попытался запустить файл .wav на iPhone прямо вне контекста приложения, добавив его через itunes, и это прекрасно работает. что указывает на то, что на iPhone есть кодеки для данного файла .wav и что он не поврежден.

Моя операционная система телефона 4.1 и iPhone 3GS. Я скомпилировал свое приложение для OS 3.2 или выше до 4.2

Ответы [ 2 ]

1 голос
/ 06 февраля 2013

Убедитесь, что переключатель отключения звука на iPhone находится в выключенном положении.

0 голосов
/ 15 декабря 2012

Попробуйте сделать следующее: на устройстве перейдите в настройки и увеличьте громкость в Sounds-> Ringer and Alerts

Затем повторите попытку.

...