Воспроизведение аудио системы дает тишину на iPhone под управлением iOS 4.2.1 - PullRequest
0 голосов
/ 09 января 2012

Проблема

Я пытаюсь воспроизвести короткий (4 секунды) аудиоклип в приложении для iOS.

  • На устройстве (iPhone 3G с iOS 4.2.1) Получаю тишину.Однако вибрация срабатывает по мере необходимости.
  • В симуляторе звук воспроизводится, как и ожидалось.

Я работаю в экземпляре Lion VM 10.7.2 на VMWare сверхуSnow Leopard 10.6.8.

Что я пробовал

  • Проверка формата - это линейный файл PCM
  • Преобразованиефайл в 16-битный аудиофайл (Audacity считал, что он 32-битный)
  • Удостоверился, что регистр имени файла идентичен для кода и файлов.
  • Очистил цель, удалил ее с iPhone иперестроен.

код

    // Usage from class
    -(void)loadRunningView {
        JGTimerRunningViewController *runningViewController = [[JGTimerRunningViewController alloc] initWithNibName:@"JGRunningViewController" bundle:nil];
        [runningViewController loadAlertSoundWithFilename:@"DigitalAlarm1"];
    }

    @interface JGTimerRunningViewController : UIViewController {
        IBOutlet UILabel *timeLabel;
        CFURLRef soundFileURLRef;
        SystemSoundID soundFileObject;
    }

    @implementation JGTimerRunningViewController

    -(void)loadAlertSoundWithFilename:(NSString *)alertSoundFilename_ {
        // Get the main bundle for the app
        CFBundleRef mainBundle = CFBundleGetMainBundle ();
        CFStringRef filename = (CFStringRef)alertSoundFilename_;
        soundFileURLRef = CFBundleCopyResourceURL (mainBundle, filename, CFSTR ("aiff"), NULL);
        // Create a system sound object representing the sound file
        AudioServicesCreateSystemSoundID (soundFileURLRef, &soundFileObject);
    }
    ..
    -(IBAction)playSound:(id)sender {
        AudioServicesPlaySystemSound (soundFileObject);
        AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
    }

    -(void)showRedCard {
        [[self view] setBackgroundColor:[UIColor redColor]];
        [self playSound:self];
    }
    ...
    - (void)dealloc {
        CFRelease(soundFileURLRef);
        AudioServicesDisposeSystemSoundID(soundFileObject);
        [timeLabel release];
        [super dealloc];
    }
    @end

Ответы [ 2 ]

1 голос
/ 09 января 2012

Вы проверили, соответствует ли регистр вашего файла имени файла - то есть "DigitalAlarm1", а не "Digitalalarm1" и т. Д. Симулятор НЕ чувствителен к регистру, но устройства.

0 голосов
/ 22 февраля 2012

Оказывается, у меня как-то на iPhone отключили громкость!

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