簡體   English   中英

如何在 Xcode 中將聲音文件添加到您的包中?

[英]How to add sound files to your bundle in Xcode?

我正在嘗試制作一個有聲音的應用程序。 我在如何在 Xcode 中向應用程序添加聲音之前問過一個問題,但是每次運行應用程序時,控制台都會拋出此錯誤,編寫代碼時MagicSound.wav does not exist in main bundle我基本上告訴程序崩潰application 和 write MagicSound.wav does not exist in main bundle如果它成為真的MagicSound.wav does not exist in main bundle 我的問題是如何將文件(特別是聲音文件)添加到 Xcode 中的包中。 我一直認為將文件放入您的資產中與將其放入您的包中是一回事。

這是我的代碼,

import UIKit
import AVFoundation

class ViewController: UIViewController {
    
    
    var magicSound: AVAudioPlayer = AVAudioPlayer()
    

    @IBOutlet var Answer: UILabel!
    
    var AnswerArray = ["Yes", "No", "Maybe", "Try Again", "Not Now", "No Doubt", "Yes Indeed", "Of course", "Definetley Not"]
    var chosenAnswer = 0
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        
        if let magicFile = Bundle.main.path(forResource: "MagicSound", ofType: "wav") {
            _ = try? AVAudioPlayer(contentsOf: URL (fileURLWithPath: magicFile))
        }
        else {
            print( "MagicSound.wav does not exist in main bundle" )
        }
        
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    override func motionEnded(_ motion: UIEventSubtype, with event: UIEvent?) {
        
        if event?.subtype == motion {
            printAnswer()
            randomAnswer()
            animation()
            showingAnswerAnimation()
            magicSound.play()
        }
        
    }

如果有人可以提供幫助,那就太好了!

謝謝。

這個答案是 Google 搜索“如何在 Xcode 中將聲音文件添加到您的包中?”的頂部,因此為了幫助像我這樣的新手,這里將逐步介紹如何在 Xcode 中將聲音添加到您的包中。 (簡短的回答,只需將它們拖到側邊欄中並選中“如果需要復制項目”)

  1. 將聲音放在一個文件夾中(你不必,但要保持它們的組織性)

  2. 將聲音文件夾拖到 Xcode 的側邊欄中。 在此處輸入圖片說明

  3. 當您將文件夾拖入時,它會給您幾個選項。 確保選中“如果需要,請復制項目”。 應該是默認的。 在此處輸入圖片說明

  4. 你完成了! 通過根據文件名獲取路徑和 URL 來訪問您的聲音。

像這樣:

func playSaveSound(){
    let path = Bundle.main.path(forResource: "upward.wav", ofType: nil)!
    let url = URL(fileURLWithPath: path)

    do {
        //create your audioPlayer in your parent class as a property
        audioPlayer = try AVAudioPlayer(contentsOf: url)
        audioPlayer.play()
    } catch {
        print("couldn't load the file")
    }
}

這篇文章對如何播放聲音有一個很好的概述。

這里有一個額外的步驟,XCode 是隱式執行的,並且可以將您的東西配置為無法完成的方式。 您需要確保 wav 文件位於目標的 Build Phases -> Copy Bundle Resources 設置下的項目列表中。

如果您的應用程序只有一個主要目標並且沒什么特別的,那么當您將文件添加到 XCode 中的文件夾時,這應該會自動完成。 但是我有一個奇怪的設置,它不是,我不得不挖掘才能找到它。

按着這些次序:

  1. 通過將聲音文件拖到 Xcode 側邊欄來添加項目中的聲音文件
  2. 將出現一個對話框 - 檢查Copy items needed並添加文件。
  3. 要測試文件是否已正確添加,請在 Xcode 中右鍵單擊任何添加的文件,然后單擊show in Finder 如果文件存在,那么在運行時它不會拋出錯誤。

除了這里的其他答案之外,要添加的另一件事是,當您導入時,您需要確保將其復制到您的應用程序中,位於“添加到目標”中。 這完成了聲音文件位於“目標的構建階段-> 復制捆綁資源設置下的項目列表”中。

您需要正確處理所有這些事情,否則它就不會出現在捆綁包中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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