【问题标题】:iOS System Sound not being playediOS 系统声音未播放
【发布时间】:2017-10-08 11:03:18
【问题描述】:

我正在尝试在 iOS 10.3.1 上运行的应用程序中播放系统声音 我遇到的问题是,当我在 viewDidLoad 中时,正在调试应用程序时,正在播放声音。应用正常运行时,一直在振动。

AudioServicesPlayAlertSoundWithCompletion(1107, nil);

当我想使用相同的系统声音时,在应用程序的特定位置,应该产生声音的适当位置,它不做任何事情,在调试模式或正常运行时没有声音也没有振动。

当应用程序运行时,我没有看到任何错误或警告。 编辑*在我使用它的地方添加了一些代码:

- (void)viewDidLoad
{
    [super viewDidLoad];
    AudioServicesPlayAlertSoundWithCompletion(1107, nil);
    //AudioServicesPlayAlertSoundWithCompletion(1100, nil); (same)
}

这总是只会振动,不管是否打开铃声,或者是否将手机连接到 Xcode。

如果它意味着什么,我已经导入了这个:

#import <AVFoundation/AVFoundation.h>
#import <CoreLocation/CoreLocation.h>
#import "CoreLocationController.h"
#import <AudioToolbox/AudioServices.h>

有人可以帮忙吗?

【问题讨论】:

  • 您使用的是设备还是模拟器?
  • 设备,6s,连接Xcode调试。
  • 可以分享代码吗?
  • 必须是播放声音到主队列吗?这是我唯一能想到的。我想使用系统声音的地方,它不在主队列上,但在 viewDidLoad 中,我看不出为什么不起作用。
  • 这似乎太明显了,但你有没有检查过你的音量是否调高了?

标签: ios xcode system-sounds


【解决方案1】:

您可以在 Framework AVFAudio 的标头中找到一些有趣的东西。

Categories

Headers

你应该看看这篇文章,我想它可能对你有帮助。

How to play Alert Sound

1) AudioServicesPlayAlertSound(kSystemSoundID_Vibrate);
2) AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);

这两个功能都会震动 iPhone。但是,当您在不支持振动的设备上使用第一个功能时,它会发出哔声。另一方面,第二个功能在不受支持的设备上没有任何作用。因此,如果您要连续振动设备,就像常识所说的警报,请使用功能 2。

【讨论】:

    【解决方案2】:

    有两个音量按钮(增大音量和减小音量)。在音量增大键旁边,还有一个toggle(switch)键,其实就是静音键。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-12
      • 1970-01-01
      • 2012-09-07
      • 1970-01-01
      • 1970-01-01
      • 2012-07-17
      相关资源
      最近更新 更多