IOS多媒體-音樂播放 視訊播放//匯入音訊工具箱框架。
阿新 • • 發佈:2018-11-22
使用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.
}
}