[英]how to add background music
重復的答案並不在所有工作
import Cocoa
import AVFoundation
var error: NSError?
println("Hello, Audio!")
var url = NSURL(fileURLWithPath: "/Users/somebody/myfile.mid") // Change to a local midi file
var midi = AVMIDIPlayer(contentsOfURL: url, soundBankURL: nil, error: &error)
if midi == nil {
if let e = error {
println("AVMIDIPlayer failed: " + e.localizedDescription)
}
}
midi.play(nil)
while midi.playing {
// Spin (yeah, that's bad!)
}
我對您的代碼進行了幾處更改,但這似乎“奏效”(我們將會解決)
首先, 按照此答案中的說明將MP3文件導入到游樂場。
然后,您可以像這樣使用文件:
import UIKit
import AVFoundation
print("Hello, Audio!")
if let url = Bundle.main.url(forResource: "drum01", withExtension: "mp3") {
do {
let midi = try AVMIDIPlayer(contentsOf: url, soundBankURL: nil)
midi.play(nil)
while midi.isPlaying {
// Spin (yeah, that's bad!)
}
} catch (let error) {
print("AVMIDIPlayer failed: " + error.localizedDescription)
}
}
注意:
print
代替println
&error
參數的“舊”方法被更改為使用do try catch
代替。 因此, error
已從您的呼叫中消失,並已由try
代替。 AUComponent.h
頭文件中找到,並轉換為: kAudioUnitErr_UnknownFileType
如果音頻單元使用外部文件作為數據源,則返回此錯誤
如果文件無效(Apple的DLS合成器返回此錯誤)
所以...這使我想到您需要執行以下兩項操作之一:
AVMidiPlayer
AVFilePlayer
或AVAudioEngine
(您可以在此處閱讀有關Swift中錯誤處理的更多信息)。
希望對您有幫助。
mp3文件必須位於Resources文件夾中。
您使用以下代碼播放mp3(而不是MIDI播放器):
if let url = Bundle.main.url(forResource: "drum01", withExtension: "mp3") {
let player = try? AVAudioPlayer(contentsOf: url)
player?.prepareToPlay()
player?.play()
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.