【问题标题】:Sound not working in device声音在设备中不起作用
【发布时间】:2009-08-04 12:25:07
【问题描述】:

我正在编写一个应用程序,其中一部分是使用 AVAudioRecorder 和 AVAudioPlayer 类录制和播放声音。我将声音文件设置如下。

NSString *resourcePath = [[NSBundle mainBundle] resourcePath];
resourcePath = [resourcePath stringByAppendingString:@"/sound.caf"];    
self.soundFileURL = [NSURL fileURLWithPath:resourcePath];

当我在模拟器中运行应用程序时,它工作正常。但是当我将应用程序加载到设备中时它不起作用。有没有人知道问题可能是什么。


嗨,咕咕。我试过你的答案。但设备没有声音。它在模拟器中工作。当我在分发设备中进行测试时,我收到了崩溃报告“未知内核 [0]:错误:AMC 重置 [非致命错误]:无法锁定 BSU”

【问题讨论】:

    标签: iphone


    【解决方案1】:

    我认为您不能写入设备上的 resourcePath,它是受保护的。找到 App 的文档目录并在其中写入:

    NSArray *filePaths = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *recordingDirectory = [filePaths objectAtIndex: 0];
    NSString *resourcePath = [recordingDirectory stringByAppendingString:@"/sound.caf"];
    self.soundFileURL = [NSURL fileURLWithPath:resourcePath];
    

    【讨论】:

      【解决方案2】:

      您是否可能与我第一次尝试让声音在 iPhone 上工作时所做的相同?声音静音了吗?

      另一种可能性:

      我发现包中的文件名在设备上区分大小写,但在模拟器中不区分大小写。 (或者更区分大小写——我还没有试验过每种方法的确切工作原理。)因此,如果文件的大小写错误,它可能只是在模拟器上滑动,但返回 nil 而不是文件时在设备上运行。

      我知道,这听起来很奇怪,但我只是在自己的项目中确认了这一点。尝试获取您知道正确加载的文件,更改文件名的大小写,并查看它在设备上的工作方式。 -- 澄清 -- 更改您检索文件的名称的大小写,使其不再与包中的文件名匹配。

      这并不意味着这是你的问题,但还是要注意一些事情。

      【讨论】:

      • 尝试使用上述解决方案。然后也发生了同样的事情。在模拟器中工作,设备中没有声音。还有其他选择吗?
      • 所以您是说您检查了文件名的大小写(大写),以确保您要求的内容与捆绑包中的内容完全匹配? (我认为答案是肯定的,但我只是想确定一下。)
      【解决方案3】:

      我刚刚查看了我的一些代码。符合你的意图,我想出:

      NSString *soundName = @"sound"; // without extension -- mimicing your naming
      NSString *resourcePath = [[NSBundle mainBundle] pathForResource: soundName ofType: @"caf"]]
      self.soundFileURL = [NSURL fileURLWithPath:resourcePath];
      

      这行得通吗?

      【讨论】:

        【解决方案4】:

        确保您的设备未处于静音模式。静音模式下无法发出短促的声音。

        【讨论】:

          【解决方案5】:

          我有同样的问题,我添加了 Audiosession 然后它工作正常。

          [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
          

          希望这会奏效。

          【讨论】:

            猜你喜欢
            • 2018-01-31
            • 1970-01-01
            • 1970-01-01
            • 2023-03-04
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多