AV Foundation学习之(二)
来源:互联网 发布:python 模仿浏览器 编辑:程序博客网 时间:2024/06/15 03:33
上一篇学到了如何调用系统语音朗诵。那种感觉没多大意思。系统的语音太难听了。特别是那男的生意。真是受不鸟了。所以大部分人都是用本地语音。既然本地语音那么怎么玩呢?主要是这个AVAudioPlayer,这是一个播放音频类。这个类提供了一种简单的从本地文本或内存中播放音频的方法。还是看代码吧。var play = falsevar players:NSArray?override func viewDidLoad() { super.viewDidLoad() initData()}///这里我存了3个本地的音频func initData() { let onePlay = self.playerForFile(name: "1") let twoPlay = self.playerForFile(name: "2") let threePlay = self.playerForFile(name: "3") self.players = [onePlay,twoPlay,threePlay]}/////这里返回每个AVAudioPlayerfunc playerForFile(name:String)->AVAudioPlayer { let fileURL = Bundle.main.url(forResource: name, withExtension: "m4a") let play = try! AVAudioPlayer.init(contentsOf: fileURL!) play.numberOfLoops = -1 ////设置循环的次数,-1为无线循环 play.enableRate = true ////这个只有设置成true 才能改变速率 play.prepareToPlay()////打开播放的准备 return play }//播放 @IBAction func playTap(_ sender: UIButton) { if !self.play { let delaytime = (self.players?[0] as AnyObject).deviceCurrentTime + 0.01 for player in self.players! { let pl = player as! AVAudioPlayer pl.play(atTime: delaytime) } self.play = true }}///停止@IBAction func stopTap(_ sender: UIButton) { if self.play { for player in self.players! { let pl = player as! AVAudioPlayer pl.stop() pl.currentTime = 0.0 } self.play = false } }/// 播放的速度////// - Parameter rate: 范围在 0.5x 1.0x是正常 1.5x 2.0xfunc adjustRate(rate:Float) { for player in self.players! { let pl = player as! AVAudioPlayer pl.rate = rate }}/// 播放的声道////// - Parameters:/// - pan: 设置声道范围-1.0 左声道 1.0右声道/// - index: 设置播放数组里面的每一个palyer 的索引func adjustPanforPlayerAtIndex(pan:Float,index:NSInteger) { for player in self.players! { let pl = player as! AVAudioPlayer pl.pan = pan }}/////slider 用户来设置音量@IBAction func slidingTap(_ sender: UISlider) { let volume = sender.value self.adjustVolume(volume: volume)}/// 声音大小////// - Parameter volume: 0~1之间的func adjustVolume(volume:Float) { for player in self.players! { let pl = player as! AVAudioPlayer pl.volume = volume }}
这样你点击播放的时候,你会发现你会发现所有的音乐一起播放了。当然你也可以设置单个的。但是很多音乐播放器是我们按了Home键或者锁屏,还是会播放的音乐。那这是怎么设置的?
这个设置是在工程里的Info.plist文件里面添加一个Required background modes 类型的数组,在其中添加名为App plays audio or streams audio/video using AirPlay 的选项。
阅读全文
0 0
- AV Foundation学习之(二)
- AV Foundation学习之补充(二)
- 《AV Foundation 开发秘籍》读书笔记(二)
- 【IOS学习】AV Foundation 学习笔记
- AV Foundationd 学习之(一)
- AV Foundationd 学习之(一)
- 《AV Foundation 开发秘籍》读书笔记(待续)
- 《AV Foundation 开发秘籍》读书笔记(三)
- iOS 7 What’s New in AV Foundation之二维码扫描(上)
- iOS 7 What’s New in AV Foundation之二维码扫描(中)
- iOS 7 What’s New in AV Foundation之二维码扫描(下)
- FFmpeg总结(二)AV系列结构体之AVFrame
- iphone ios AV Foundation
- AV Foundation - 播放音乐
- AV Foundation - 录制音频
- AV Foundation 框架图
- AV Foundation系列(四)AVAssetReader和AVAssetWrite
- Windows Workflow Foundation学习笔记(二)
- rabbit MQ的rpc功能详解
- Zookeeper实例Curator API-NodeCache节点不存在实例
- 560. Subarray Sum Equals K
- ANSIC几种特殊的标准定义(__FILE__、__LINE__、__STDC__···)
- Linux Boot出现 an error occurred during the file system
- AV Foundation学习之(二)
- xib输入框输入汉字下移问题,亲测已解决
- (转)纵观国内外证券公司IT发展史
- git框架学习(keep update)
- Thinking in java-15 传值机制&&关系问题
- eclipse 查找接口实现类快捷键
- 3.Go语言数据类型
- Servlet
- (转)深度学习是经验主义新高峰,不是理性主义终结