苹果手表有时会播放声音

Posted

技术标签:

【中文标题】苹果手表有时会播放声音【英文标题】:sound playes sometimes in apple watch 【发布时间】:2021-05-04 08:32:22 【问题描述】:

每当满足某些条件时,我都会播放声音。 该函数每秒计算一次:

if (currentIndexInPredictionWindow == ModelConstants.predictionWindowSize) 
    let InpVect = userAccelX + userAccelY + userAccelZ + quaternionX + quaternionY + quaternionZ + quaternionW + gravityX + gravityY + gravityZ
    myNeuralNetworkFunction_initialize()
    myNeuralNetworkFunction(InpVect, OutputPointer)
    let res0 = OutputPointer[0]
    let res1 = OutputPointer[1]

    if (res0 > 0.6)                 
        WKInterfaceDevice.current().play(.success)
        //playSound()
        touches += 1
        print ("touch!")
    
    currentIndexInPredictionWindow = 0

我用 play(.success) 和 AVAudioPlayer (func playSound) 试过这个,在这两种情况下,每次我调用函数时它都不会播放。 奇怪的是,如果我将命令 play(.success) 放在内部 if 语句之外,它会每秒播放一次。 有人知道是什么原因造成的吗?

【问题讨论】:

【参考方案1】:

这可能是因为您没有在主线程中播放声音尝试使用

DispatchQueue.main.async 
     WKInterfaceDevice.current().play(.success)

我觉得应该没问题

【讨论】:

有时还会播放:( 所以在这种情况下,我认为唯一可行的方法是为您的 if 条件设置 else ,特别是如果它在列表中调用

以上是关于苹果手表有时会播放声音的主要内容,如果未能解决你的问题,请参考以下文章

苹果手表模拟器现在可以播放音效了吗?

为啥 Android SoundManager 有时会播放两次声音?

苹果机无法播放声音Audio

开始播放时声音随机中断

ios pjsip - 在 sip 通话期间播放声音

Java:多次播放声音