Swift 如何使用AVAudioPlayer播放音频

前言:

iOS里面导入AVFoundation包进行音频使用管理,调用AVAudioPlayer对象进行音频操作。这里有个小方法,直接粘贴即可使用。

调用方法:

private func playAudio(forResource: String, ofType: String){
        if let bundlePath = Bundle.main.path(forResource: forResource, ofType: ofType) {
        let url = URL.init(fileURLWithPath: bundlePath)
        do {
            try audioPlayer = AVAudioPlayer(contentsOf: url)
            audioPlayer.delegate = self
            audioPlayer.prepareToPlay()
        } catch let error as NSError {
        print("audioPlayer error \(error.localizedDescription)")
        }
            
        }
    }

说明:在哪个监听或viewDidLoad()方法里面加载就行了。第一个参数为要播放的音频文件名,第二个是音频文件类型。例如这里有一首名为"Lover.mp3"的音乐。调用方法写为playAudio(forResource: "Lover", ofType: "mp3")即可。
另外,调用该方法的前提是先创建好AVAudioPlayer对象,实现AVAudioPlayerDelegate协议,并且已经设置delegate。

全部代码:

import UIKit
import AVFoundation

class ViewController: UIViewController, AVAudioPlayerDelegate{
    
    var audioPlayer: AVAudioPlayer = AVAudioPlayer();
    
    private func playAudio(forResource: String, ofType: String){
        if let bundlePath = Bundle.main.path(forResource: forResource, ofType: ofType) {
        let url = URL.init(fileURLWithPath: bundlePath)
        do {
            try audioPlayer = AVAudioPlayer(contentsOf: url)
            audioPlayer.delegate = self
            audioPlayer.prepareToPlay()
        } catch let error as NSError {
        print("audioPlayer error \(error.localizedDescription)")
        }
            
        }
    }

    @IBAction func oneListener(_ sender: Any) {
        // Play the audio instance.
        self.audioPlayer.play()
    }
    
    @IBAction func twoListener(_ sender: Any) {
        // Pause the audio instance that playing.
        self.audioPlayer.pause()
    }
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        
        playAudio(forResource: "myTest", ofType: "mp3")
        
        self.audioPlayer.delegate = self
    }


}

注意事项:

经测试,该方法只可以播放“源格式音频”。什么叫“源格式音频”,就是指该音频一开始是什么格式,调用时其种类就要写什么格式;而不是假设一开始源格式为mp3,人为地直接把文件名强行改为wma格式,这是不行的;但如果说一开始是mp3,经过音频转码转为其它格式则是可以的。之前从某个网站下下来的音频就是打不开,转码后才能打开播放就是这个原因。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值