异常处理:
用" try! "可以忽略异常
enum MyError: ErrorProtocol {
case FirstError
case SecondError
}
func testError(a: Int) throws {
guard a > 0 else {
throw MyError.FirstError
}
print("testError")
}
do {
try testError(1)
}
catch MyError.FirstError {
}
catch MyError.SecondError {
}
catch {
}
设置播放速率:
audioPlayer?.enableRate = true
audioPlayer?.rate = 10
import UIKit
import AVFoundation
class ViewController: UIViewController, AVAudioPlayerDelegate {
@IBOutlet weak var uiPlayButton: UIButton!
@IBOutlet weak var label: UILabel!
@IBOutlet weak var progress: UIProgressView!
var audioPlayer: AVAudioPlayer?
var timer: NSTimer?
var image_play = UIImage(named: "cm2_rcd_btn_play_prs")
var image_pause = UIImage(named: "cm2_rcd_btn_pause")
var log = false
let url = [
NSBundle.mainBundle().URLForResource("南征北战 - 我的天空", withExtension: "mp3"),
NSBundle.mainBundle().URLForResource("BANG BANG BANG", withExtension: "mp3"),
NSBundle.mainBundle().URLForResource("韩安旭 - 多幸运", withExtension: "mp3"),
NSBundle.mainBundle().URLForResource("Jam - 七月上", withExtension: "mp3"),
NSBundle.mainBundle().URLForResource("IF YOU", withExtension: "mp3")
]
let name = ["南征北战 - 我的天空", "BANG BANG BANG", "韩安旭 - 多幸运", "Jam - 七月上", "IF YOU"]
var max_i:Int!
var i = 0
override func viewDidLoad() {
super.viewDidLoad()
max_i = url.count
changMusic()
audioPlayer?.prepareToPlay()
timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: #selector(didTime(_:)), userInfo: nil, repeats: true)
}
func changMusic(){
label.text = name[i]
do{
try audioPlayer = AVAudioPlayer(contentsOfURL: url[i]!)
}
catch{
}
if log{
Play()
}
}
func Play(){
audioPlayer?.play()
}
func Pause(){
// timer.invalidate() 停止计时器
audioPlayer?.pause()
}
func didTime(timer: NSTimer){
progress.progress = Float((audioPlayer?.currentTime)!/(audioPlayer?.duration)!)
}
@IBAction func playButton(sender: UIButton) {
if log{
Pause()
uiPlayButton.setImage(image_play, forState: .Normal)
log = false
}else{
Play()
uiPlayButton.setImage(image_pause, forState: .Normal)
log = true
}
}
@IBAction func lastButton(sender: UIButton) {
if i <= 0{
i = max_i - 1
}else{
i = i - 1
}
changMusic()
}
@IBAction func nextButton(sender: UIButton) {
if i < max_i-1{
i = i + 1
}else{
i = 0
}
changMusic()
}
func audioPlayerDidFinishPlaying(player: AVAudioPlayer, successfully flag: Bool){
print("播放完成")
}
}
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。