Swift中的AudioToolBox - 声音在模拟器中工作,但在我的IPad

时间:2016-03-13 03:27:39

标签: ios swift ipad audio audiotoolbox

我正在创建一个音乐应用,其中不同的钟声将在节奏周期的不同点播放。到目前为止,我的代码在模拟器中工作正常,但我的设备上没有任何声音。我从其他应用程序中获取声音。我的代码有问题吗?谢谢你的帮助!

import UIKit
import AudioToolbox

func playChime1() {
    var chime1URL: NSURL?
    var chime1ID:SystemSoundID = 0
    let filePath = NSBundle.mainBundle().pathForResource("Chime", ofType: "mp3")
    chime1URL = NSURL(fileURLWithPath: filePath!)
    AudioServicesCreateSystemSoundID(chime1URL!, &chime1ID)
    AudioServicesPlaySystemSound(chime1ID)
}
func playChime2() {
    var chime2URL: NSURL?
    var chime2ID:SystemSoundID = 0
    let filePath = NSBundle.mainBundle().pathForResource("Chime2", ofType: "mp3")
    chime2URL = NSURL(fileURLWithPath: filePath!)
    AudioServicesCreateSystemSoundID(chime2URL!, &chime2ID)
    AudioServicesPlaySystemSound(chime2ID)
}
func playChime3() {
    var chime3URL: NSURL?
    var chime3ID:SystemSoundID = 0
    let filePath = NSBundle.mainBundle().pathForResource("Chime3", ofType: "mp3")
    chime3URL = NSURL(fileURLWithPath: filePath!)
    AudioServicesCreateSystemSoundID(chime3URL!, &chime3ID)
    AudioServicesPlaySystemSound(chime3ID)
}

3 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,并意识到我的iPhone处于静音模式,无声播放声音。

不幸的是,AudioToolbox声音响应设备的'Ringer'音量,而不是AVFoundation使用音频的'音量'设置。

这是有意义的,因为AudioToolbox应该用于系统声音。

答案 1 :(得分:0)

来自相关问题:AudioServicesPlaySystemSound not working on iPad device

你无法在iDevice上播放MP3,需要使用不同的框架。

答案 2 :(得分:0)

我的问题是分配给AudioQueue的缓冲区数量,我分配了3个,并且它在MacOS上可以工作,但是对于iOS设备,您至少需要4个