Xcode9学习笔记65 - 实现音乐的背景播放功能

import UIKit
import AVFoundation//引入流媒体基础框架,它能收集各种多媒体数据,这些数据可以来自不同的输入设备,比如摄像机、录音机等

class ViewController: UIViewController {
    
    var audioPlayer:AVAudioPlayer = AVAudioPlayer()//初始化音频播放对象,并将音频播放对象作为视图控制器类的属性

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        
        //获得音频会话对象,该对象属于单例模式,也就是说不用开发者而自行实例化,这个类在各种音频环境中,起着非常重要的作用
        let session = AVAudioSession.sharedInstance()
        
        do {//在音频播放前,首先创建一个异常捕捉语句
            try session.setActive(true)//启动音频会话管理,此时会阻断后台音乐的播放
            try session.setCategory(AVAudioSessionCategoryPlayback)//设置音频操作类别,表示该应用仅支持音频的播放
            UIApplication.shared.beginReceivingRemoteControlEvents()//设置应用程序支持接受远程控制事件
            
            let path = Bundle.main.path(forResource: "MarryYou", ofType: "mp3")//定义一个字符串常量,描述声音文件的路径
            let soundUrl = URL(fileURLWithPath: path!)//将字符串路径转换成网址路径
            
            try audioPlayer = AVAudioPlayer(contentsOf: soundUrl)//对音频播放对象进行初始化,并加载指定的音频文件
            audioPlayer.prepareToPlay()//为音频播放做好准备
            audioPlayer.volume = 1.0//设置音频播放对象的音量大小
            audioPlayer.numberOfLoops = -1//设置音频播放次数,-1为无线循环播放
            audioPlayer.play()
        } catch {
            print(error)
        }
    }

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


}

  

posted on 2017-11-19 07:17  业余极客  阅读(288)  评论(0编辑  收藏  举报

导航