Ios 带按钮的ViewController中有多个音频文件

Ios 带按钮的ViewController中有多个音频文件,ios,swift,avaudioplayer,swift5,Ios,Swift,Avaudioplayer,Swift5,要在同一ViewController中播放多个音频文件。当用户单击按钮1时,应将文件1.mp3加载到ViewController中,当用户单击play时,应播放相同的内容,对于按钮2文件2.mp3应加载并播放 我知道如何对单个文件执行此操作,但对于多个文件,我必须一次又一次地创建ViewController,这非常困难。这是我的单文件代码 @IBAction func buttonPressed(_ sender: UIButton) { if player.isPlaying {

要在同一
ViewController
中播放多个音频文件。当用户单击
按钮1
时,应将
文件1.mp3
加载到
ViewController
中,当用户单击play时,应播放相同的内容,对于
按钮2文件2.mp3
应加载并播放

我知道如何对单个文件执行此操作,但对于多个文件,我必须一次又一次地创建
ViewController
,这非常困难。这是我的单文件代码

 @IBAction func buttonPressed(_ sender: UIButton) {
    if player.isPlaying {

        player.stop()
        sender.setImage(UIImage(named:"play.png"),for: .normal)
    } else {
        player.delegate = self
        player.play()
         player.numberOfLoops = 107
        sender.setImage(UIImage(named:"pause.png"),for: .normal)
    }


 }


 do {
     let audioPlayer = Bundle.main.path(forResource: "chalisa", ofType: "mp3")
     try player = AVAudioPlayer(contentsOf: NSURL(fileURLWithPath: audioPlayer!) as URL)
 }catch {
   //ERROR
 }

您可以使用Tableview列出所有歌曲名称和播放按钮用于在一个viewcontroller中使用多个音频文件

import AVFoundation

//MARK:- Variable Declaration
var player: AVAudioPlayer?    

func playMusic() {
     guard let url = Bundle.main.url(forResource: "chalisa", withExtension: "mp3") else { return }

do {
    try AVAudioSession.sharedInstance().setCategory(.playback, mode: .default)            
    try AVAudioSession.sharedInstance().setActive(true)


    player = try AVAudioPlayer(contentsOf: url, fileTypeHint: AVFileType.mp3.rawValue)

    /* iOS 10 and earlier require the following line:
    player = try AVAudioPlayer(contentsOf: url, fileTypeHint: AVFileTypeMPEGLayer3) */

    guard let player = player else { return }

    player.play()

} catch let error {
    print(error.localizedDescription)
}
}