先來個效果瞅瞅,小姐姐還是挺漂亮的,??,一些基礎功能,如果需要更多請二次加工,如有問題請大佬指正
AA5FF1FA651F19C4B0EAD9B3B2EBE8E0.png
//
// ViewController.swift
// Swift-AVPlayer
//
// Created by 品德信息 on 2016/12/29.
// Copyright ? 2016年 品德信息. All rights reserved.
//
import UIKit
import AVFoundation
import MediaPlayer
import AVKit
import AudioToolbox //導入音頻工具箱框架,使用系統聲音服務
class ViewController: UIViewController {
//初始化音頻播放對象,將音頻播放對象,作為試圖控制器的類的屬性
var audioPlayer:AVAudioPlayer = AVAudioPlayer()
//創建一個視頻播放控制器屬性,用于視頻播放
var mediaPlayer:MPMoviePlayerController = MPMoviePlayerController()
override func viewDidLoad() {
super.viewDidLoad()
//本地的音樂的播放:
self.localMusic()
//背景音樂的播放需要現在info.plist進行社會 Required background。。。
self.backgroundMusic()
//視頻播放
// self.mediaPlayerViedo()
//ios 8 的新類用于視頻播放
// AVPlayerViewController
//聲明一個系統聲音標志類型的聲音變量
var soundID:SystemSoundID = 0
let path = Bundle.main.path(forResource: "callRing", ofType: "mp3")
//路徑找不到就會報內存錯誤的
let soundUrl = URL(fileURLWithPath: path!)
AudioServicesCreateSystemSoundID(soundUrl as CFURL, &soundID)
}
func mediaPlayerViedo() {
//視頻播放前首先創建一個異常捕捉語句
do{
let path = Bundle.main.path(forResource: "loginmovie", 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)
mediaPlayer.play()
//添加一個通知用來監聽視頻播放是否結束
NotificationCenter.default.addObserver(self, selector: #selector(ViewController.movieFinished(notify:)), name: .MPMoviePlayerPlaybackDidFinish, object: mediaPlayer)
}catch
{
print(error)
}
}
//創建一個方法用來響應視頻播放
func movieFinished(notify:NSNotification) {
print("movie ends")
//獲取視頻播放控制器
let player = notify.object
NotificationCenter.default.removeObserver(self, name: NSNotification.Name.MPMoviePlayerPlaybackDidFinish, object: player)
}
func backgroundMusic() {
//獲取音頻會話對象,改對象屬于單利模式,也就是說不用開發者寫,自行實例化,這個類在各種音頻環境中起著非常重要的作用
let session = AVAudioSession.sharedInstance()
//在音頻播放前,首先創建一個異常捕捉語句
do{
//啟動音頻會話管理,此時會阻斷后臺音樂播放
try session.setActive(true)
//設置音頻播放類別,表示該應用僅支持音頻播放
try session.setCategory(AVAudioSessionCategoryPlayback)
//定義一個字符串變量,描述聲音文件的路徑
let path = Bundle.main.path(forResource: "callRing", ofType: "mp3")
//將字符串路徑轉化為網址路徑
let soundUrl = URL(fileURLWithPath: path!)
try audioPlayer = AVAudioPlayer(contentsOf:soundUrl)
//為音頻播放做好準備
audioPlayer.prepareToPlay()
//設置音量
audioPlayer.volume = 1.1
audioPlayer.numberOfLoops = -1
audioPlayer.play()
}catch{
print(error)
}
}
func localMusic() {
let path = Bundle.main.path(forResource: "callRing", ofType: "mp3")
// public init(fileURLWithPath path: String)
let soundUrl = URL(fileURLWithPath: path!)
//在音頻播放前首先創建一個異常捕捉語句
do{
//對音頻播放對象進行初始化,并加載指定的音頻播放對象
// public init(contentsOf url: URL) throws
try audioPlayer = AVAudioPlayer(contentsOf:soundUrl)
//設置音頻對象播放的音量的大小
audioPlayer.volume = 1.0
//設置音頻播放的次數,-1為無限循環播放
audioPlayer.numberOfLoops = -1
audioPlayer.play()
}catch{
print(error)
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}