1. 程式人生 > >IOS多媒體-音樂播放 視訊播放//匯入音訊工具箱框架。

IOS多媒體-音樂播放 視訊播放//匯入音訊工具箱框架。

使用SystemSoundld播放簡短聲音

//匯入音訊工具箱框架。
import AudioToolbox


 //使用SystemSoundld播放簡短聲音
    func test1() {
        //宣告一個系統聲音標識型別的聲音變數
        var _soundId : SystemSoundID = 0
        //獲取沙箱目錄中,聲音檔案的所在路徑
        let path = Bundle.main.path(forResource: "camera", ofType: "wav")
        let soundUrl = URL(fileURLWithPath: path!)
        AudioServicesCreateSystemSoundID(soundUrl as CFURL, &_soundId)
        AudioServicesPlayAlertSound(_soundId)
        
        
    }

使用AudioPlayer播放音樂

匯入流媒體基礎框架
import AVFoundation
需要對音樂的播放進行監聽 AVAudioPlayerDelegate

//初始化音訊播放物件。並將音訊播放物件作為檢視控制器類的屬性
var audioPlayer:AVAudioPlayer = AVAudioPlayer()



 //獲取沙箱目錄中 音訊檔案的所在路徑
        let path = Bundle.main.path(forResource: "music", ofType: "mp3")
        //將字串路徑轉換層網址路徑
        let soundUrl = URL(fileURLWithPath: path!)
        //在音訊播放前 建立一個異常捕捉語句
        do {
            //初始化音訊播放物件。並載入指定檔案
            try audioPlayer = AVAudioPlayer(contentsOf: soundUrl)
            audioPlayer.volume = 1.0 //音量大小
            audioPlayer.numberOfLoops = -1//設定播放次數 -1為輪迴播放
            //將音訊的代理設定為檢視控制器
            audioPlayer.delegate = self
            audioPlayer.play()
        } catch  {
            print(error)
        }

實現音樂的背景播放功能

新增一條新的資訊

新增一條新的資訊

 

import UIKit
//匯入流媒體基礎框架
import AVFoundation
//需要對音樂的播放進行監聽
class ViewController: UIViewController{
    //初始化音訊播放物件
    var audioPlayer:AVAudioPlayer = AVAudioPlayer()
    
    override func viewDidLoad() {
        super.viewDidLoad();
       test1()
    }
    
    //使用AudioPlayer播放音樂
    func test1() {
        //獲得音訊會話物件 (該物件為單例模式)
        let session = AVAudioSession.sharedInstance()
        do {
            //啟動音訊會話管理 ,此時會阻斷後臺音樂的播放
            try session.setActive(true)
            //設定音訊操作類別。表示該應用僅支援音訊的播放
            try session.setCategory(AVAudioSessionCategoryPlayback)
            //設定應用程式支援遠端控制事件∂
            UIApplication.shared.beginReceivingRemoteControlEvents()
            //定義一個字串常量。描聲音檔案的路徑
            let path = Bundle.main.path(forResource: "music", ofType: "mp3")
            let soundUrl = URL(fileURLWithPath: path!)
            //初始化音訊物件。載入檔案
            try audioPlayer = AVAudioPlayer(contentsOf: soundUrl)
            audioPlayer.prepareToPlay()
            audioPlayer.volume = 1.0
            audioPlayer.numberOfLoops = -1
            audioPlayer.play()
        } catch  {
            print(error)
        }
        
    }
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
}

使用MPMoviePlayerController實現視訊播放

import UIKit
import MediaPlayer

class ViewController: UIViewController{
    
    var mediaPlayer:MPMoviePlayerController = MPMoviePlayerController()
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        
        do{
            let path = Bundle.main.path(forResource: "movie", ofType: "mp4")
            let movieUrl = URL(fileURLWithPath: path!)
            
            mediaPlayer = MPMoviePlayerController(contentURL: movieUrl)
            mediaPlayer.controlStyle = MPMovieControlStyle.fullscreen
            mediaPlayer.view.frame = self.view.bounds
            mediaPlayer.initialPlaybackTime = -1
            
            self.view.addSubview(mediaPlayer.view)
            
            NotificationCenter.default.addObserver(self, selector: #selector(ViewController.movieFinished(_:)), name: .MPMoviePlayerPlaybackDidFinish, object: mediaPlayer)
            
            mediaPlayer.play()
        } catch{
            print(error)
        }
    }
    
    @objc func movieFinished(_ notify:Notification)
    {
        print("Movie ends.")
        let player = notify.object
        NotificationCenter.default.removeObserver(self, name: NSNotification.Name.MPMoviePlayerPlaybackDidFinish, object: player)
    }
    
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
}