簡體   English   中英

如何添加背景音樂

[英]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
  • 在Swift 3中,很多東西都被重命名了,一些帶有&error參數的“舊”方法被更改為使用do try catch代替。 因此, error已從您的呼叫中消失,並已由try代替。
  • 以上將失敗! 您將看到錯誤代碼-10870,該代碼可在AUComponent.h頭文件中找到,並轉換為:

kAudioUnitErr_UnknownFileType

如果音頻單元使用外部文件作為數據源,則返回此錯誤

如果文件無效(Apple的DLS合成器返回此錯誤)

所以...這使我想到您需要執行以下兩項操作之一:

  1. 找到一個.midi文件,並將其與AVMidiPlayer
  2. 找到其他東西來播放您的文件,例如AVFilePlayerAVAudioEngine

(您可以在此處閱讀有關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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM