我正在创建一个音乐应用,其中不同的钟声将在节奏周期的不同点播放。到目前为止,我的代码在模拟器中工作正常,但我的设备上没有任何声音。我从其他应用程序中获取声音。我的代码有问题吗?谢谢你的帮助!
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)
}
答案 0 :(得分:1)
我遇到了同样的问题,并意识到我的iPhone处于静音模式,无声播放声音。
不幸的是,AudioToolbox声音响应设备的'Ringer'音量,而不是AVFoundation使用音频的'音量'设置。
这是有意义的,因为AudioToolbox应该用于系统声音。
答案 1 :(得分:0)
来自相关问题:AudioServicesPlaySystemSound not working on iPad device
你无法在iDevice上播放MP3,需要使用不同的框架。
答案 2 :(得分:0)
我的问题是分配给AudioQueue的缓冲区数量,我分配了3个,并且它在MacOS上可以工作,但是对于iOS设备,您至少需要4个