如何在 swift 2 中通过按一下按钮播放 m4a 文件?

Posted

技术标签:

【中文标题】如何在 swift 2 中通过按一下按钮播放 m4a 文件?【英文标题】:How do I play an m4a file in swift 2 upon the touch of a button? 【发布时间】:2015-10-11 18:26:45 【问题描述】:

当我触摸一个按钮时如何播放音频文件,我在网上找不到任何东西,因为它都是 swift 1。

我想要original 函数中的音频代码。

import UIKit
import AVFoundation

class ViewController: UIViewController 
    @IBAction func original(sender: AnyObject)         
    

【问题讨论】:

【参考方案1】:

这里有一些代码可以帮助你:

斯威夫特 3

import UIKit
import AVFoundation

class ViewController: UIViewController

    let player = AVQueuePlayer()

    @IBAction func original(sender: AnyObject) 
        if let url = Bundle.main.url(forResource: "sample_song", withExtension: "m4a") 
            player.removeAllItems()
            player.insert(AVPlayerItem(url: url), after: nil)
            player.play()
        
    

斯威夫特 2

import UIKit
import AVFoundation

class ViewController: UIViewController

    let player = AVQueuePlayer()

    @IBAction func original(sender: AnyObject) 
        if let url = NSBundle.mainBundle().URLForResource("SomeAudioFile", withExtension: "m4a") 
            player.removeAllItems()
            player.insertItem(AVPlayerItem(URL: url), afterItem: nil)
            player.play()
        
    

你没有解释如果多次按下按钮会发生什么,所以我假设你想停止当前正在播放的项目并开始一个新项目。

【讨论】:

如果我们添加“mp3”扩展名,它适用于 .mp3 文件。用 Swift 5 播放 m4a 文件的奇怪事情......有什么建议吗?)【参考方案2】:
if let url = NSBundle.mainBundle().URLForResource("SomeAudioFile", withExtension: "m4a") 
            player.removeAllItems()
            player.insertItem(AVPlayerItem(URL: url), afterItem: nil)
            player.play()
         else 

print("Go to your Build Phases/Copy Bundle Resources to make sure that your music file IS INDEED there. If not, drag it from the Navigator pane into the Copy Bundle Resources folder.")

【讨论】:

【参考方案3】:

Swift 5 更新:

    if let url = Bundle.main.url(forResource: "SomeAudioFile", withExtension: "m4a") 
        player.removeAllItems()
        player.insert(AVPlayerItem(url: url), after: nil)
        player.play()
    

【讨论】:

以上是关于如何在 swift 2 中通过按一下按钮播放 m4a 文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Swift 4 中通过 SwiftyJson 和 Alamofire 创建多个按钮?

如何将m4a音频换成mp3格式

如何在 vb.Net 中通过外部扬声器播放声音?

Swift 2 + Xcode 7:按下错误按钮时播放声音

Swift AVAudioPlayer 不会播放用 AVAudioRecorder 录制的音频

如何在 Swift 中通过 Segue 将数据传递到下一个视图?