【问题标题】:Audio Playback Not Working (AudioToolbox/AudioServices) - iPad 3音频播放不工作 (AudioToolbox/AudioServices) - iPad 3
【发布时间】:2012-08-29 08:27:32
【问题描述】:

我有一个使用 AudioToolbox/AudioServices 库播放音频通知的简短方法(为简洁起见,我删除了大部分功能代码):

- (IBAction)thatWasEasy:(id)sender {

    NSBundle *mainBundle = [NSBundle mainBundle];
    NSString *filePath = [mainBundle pathForResource:@"easy" ofType:@"mp3"];
    NSURL *aFileURL = [NSURL fileURLWithPath:filePath isDirectory:NO];

    SystemSoundID soundID;
    AudioServicesCreateSystemSoundID((__bridge_retained CFURLRef)aFileURL, &soundID) ;
    AudioServicesPlaySystemSound(soundID);     
}

音频在模拟器以及 iPad 1 和 iPad 2 设备上正常播放,但在 iPad 3(Verizon LTE 版本)上听不到声音。我已经彻底检查了设备的声音设置,并将音频文件类型转换为 wav 和 caf,行为没有差异。

关于更深入地解决此问题的任何建议?不幸的是,我没有另一台 iPad 3 可供比较。感谢您的帮助!

【问题讨论】:

    标签: objective-c audiotoolbox ipad-3


    【解决方案1】:

    我认为您不能使用 AudioServicesPlaySystemSound 在设备上播放 mp3 文件 AudioServicesPlaySystemSound apple document

    -(void)playAif:(NSString *)filename {
    //  NSLog(@"play: %@", filename);
    
    SystemSoundID soundID;
    NSString *path = [[NSBundle mainBundle]
                      pathForResource:filename ofType:@"aif"];    
    
    
    if (path) { // test for path, to guard against crashes
    
        UInt32 sessionCategory = kAudioSessionCategory_AmbientSound;    // 1
    
        AudioSessionSetProperty (
                                 kAudioSessionProperty_AudioCategory,                        // 2
                                 sizeof (sessionCategory),                                   // 3
                                 &sessionCategory                                            // 4
                                 );
    
        AudioServicesCreateSystemSoundID((CFURLRef)[NSURL fileURLWithPath:path],&soundID);
        AudioServicesPlaySystemSound (soundID);
    
    }
    }
    

    【讨论】:

    • 实际上,一旦我确定了该声音切换的位置,我就使用所有三种音频类型重新测试了播放,它们效果很好。根据 Apple 的文档,您是正确的,但它仍然可以毫无问题地播放 mp3。
    • 很有趣,我想试试。谢谢。
    • 我想您可能知道“铃声和警报音量应高于零”
    • 它高于零。我把它设置在中档。该设置与缺少声音播放无关。
    【解决方案2】:

    想通了。当您转到 [设置] 并选择 [常规] 选项卡下的 [声音] 时,您可以验证您的铃声和警报音量级别是否高于零,并且当移动滑块时,设备将以新设置的级别发出提示音。此外,您会注意到您的所有特定音调都在下面的列表中启用。这就是检查设备设置时让我失望的原因。我启动了 YouTube 和其他应用程序,并且能够很好地播放声音。

    直到我与另一个人(他更了解产品)交谈后才意识到,还有另一种方法可以使系统声音静音。通过按圆形按钮两次,屏幕底部会显示一个图标栏。如果用手指向右拖动图标,则会显示扬声器图标。由于某种原因,这碰巧被静音了……大概是在我最近执行系统还原之后。点按它即可取消静音并让您重新开始工作。不知道为什么 Apple 以这种方式设计它,但如果它可以在设备设置下访问,它会很有帮助(并为我节省了几个小时的修补时间)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-09-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多