iOS 9音频应用播放音频之控制播放速度

iOS 9音频控制播放速度

iOS9音频文件在播放时是以一定的速度进行的。这个速度是可以进行更改的,从而实现iOS9音频文件的快速播放和慢速播放功能。要实现iOS9播放速度的更改需要使用AVAudioPlayer类中的rate属性实现。其语法形式如下:

  • var rate: Float

其中,该属性设置的值为浮点类型,范围在0.5到2.0之间。如果该属性的值设置为1.0表示正常播放,它也是默认值。2.0表示以最快的速度进行播放,0.5表示以最慢的速度进行播放。

注意:如果开发者要iOS 9音频实现播放速度的改变则必须要对enableRate属性进行设置,该属性的功能是否允许改变播放速度。其语法形式如下:

  • var enableRate: Bool

其中,该属性设置的值为布尔类型。将值为true时,表示允许改变播放速度,反之,则不运行改变播放速度。

【示例2-6】以下将以第一个iOS 9音频实例为基础,让用户可以控制音频文件的播放速度。具体的操作步骤如下:

(1将主视图中的Rate Text Field文本框与插座变量rateTextField进行关联。

(2将主视图中的Rate Text Field文本框与动作setRate进行关联。

(3右击主视图中的Rate Text Field文本框,在弹出的Rate Text Field对话框,如图2.27所示。

(4选择Sent Events下的Did End On Exit选项,将此选项和dock中的View Controller进行关联,如图2.28所示。

(5)Did End On Exit选项和dock中的View Controller进行关联后,会弹出当前声明的方法,如图2.29所示。

 

图2.28  iOS 9音频关联

(6选择其中的setRate:方法,此时Did End On Exit就与setRate:方法进行关联了,如图2.30所示。

 

图2.29 iOS 9音频弹出方法对话框                图2.30  iOS 9音频关联后的效果

(7打开ViewController.swift文件,编写代码,实现播放速度的控制。代码如下:

  • @IBAction func setRate(sender: AnyObject) {
  • rateTextField.resignFirstResponder()                                                                                    //关闭键盘
  • //判断音频文件是否没有开始播放
  • if(audioEffect!.playing==false && audioEffect?.currentTime == 0.0){
  • //没有开始播放
  • audioEffect?.enableRate=true                                                                             //允许改变播放速度
  • let rateValue=NSString(string: rateTextField.text!).floatValue
  •  audioEffect?.rate=rateValue                                                                                //设置播放速度
  • hideMoreSettingsView()
  • }else{
  • //开始播放
  • let alertController = UIAlertController(title: "提示", message: "音乐开已经播放,设置无效", preferredStyle: UIAlertControllerStyle.Alert)
  • //关闭更多设置项
  • let action = UIAlertAction(title: "知道了", style: UIAlertActionStyle.Default){
  •             (action: UIAlertAction!) -> Void in
  •             self.hideMoreSettingsView()
  •         }
  • alertController.addAction(action)
  • self.presentViewController(alertController, animated: true, completion: nil)
  • }
  • }

此时运行程序,在出现的模拟器界面中轻拍更多按钮,弹出更多设置项,在播放速度对应的文本框中输入数字,按下return键后,退出更多设置项。轻拍播放按钮,音频文件就会进行播放了。此时音频文件播放的速度与用户输入的数字有关。

注意:如果开发者在iOS 9音频文件播放一段时间后轻拍更多按钮,在弹出的更多设置项中输入播放速度,此时输入的速度是无效的,它不可以控制音频文件的播放速度,所以在按下return键后,会弹出“iOS9音乐已经播放,设置无效”的警告视图,如图2.31所示。

 

图2.31  iOS 9音频警告视图

本文选自:iOS 9音频应用开发基础教程大学霸内部资料,转载请注明出处,尊重技术尊重IT人!

iOS 9音频应用播放音频之控制播放速度的更多相关文章

  1. iOS 9音频应用播放音频之播放控制暂停停止前进后退的设置

    iOS 9音频应用播放音频之播放控制暂停停止前进后退的设置 ios9音频应用播放控制 在“iOS 9音频应用播放音频之ios9音频基本功能”一文可以看到AVAudioPlayer类有很多的属性以及方法 ...

  2. iOS开发拓展篇—封装音频文件播放工具类

    iOS开发拓展篇—封装音频文件播放工具类 一.简单说明 1.关于音乐播放的简单说明 (1)音乐播放用到一个叫做AVAudioPlayer的类 (2)AVAudioPlayer常用方法 加载音乐文件 - ...

  3. IOS音频1:之采用四种方式播放音频文件(一)AudioToolbox AVFoundation OpenAL AUDIO QUEUE

    本文转载至 http://blog.csdn.net/u014011807/article/details/40187737 在本卷你可以学到什么? 采用四种方法设计应用于各种场合的音频播放器: 基于 ...

  4. iOS 9音频应用播放音频之第一个ios9音频实例

    iOS 9音频应用播放音频之第一个ios9音频实例 第一个ios9音频实例 为了让开发者可以对上面的内容有更加深入的了解,本节将实现播放音频的第一个实例.在此实例中会涉及到项目的创建.界面设计.关联以 ...

  5. iOS从零开始学习直播之音频2.后台播放和在线播放

    本篇主要讲音频的后台播放和在线播放. 后台播放   上一篇写的工程运行之后程序退至后台,发现运行不了,歌停止了,这显然不行,音乐后台播放是标配啊.今天就来讲一下后台播放. 1.在plist文件里,告诉 ...

  6. iOS从零开始学习直播之音频1.播放本地音频文件

      现在直播越来越火,俨然已经成为了下一个红海.作为一个资深码农(我只喜欢这样称呼自己,不喜欢别人这样称呼我),我必须赶上时代的潮流,开始研究视频直播.发现视屏直播类的文章上来就讲拉流.推流.采集.美 ...

  7. ios开发——实用技术篇&网络音频播放

    网络音频播放 在日常的iOS开发中,我们通常会遇到媒体播放的问题,XCode中已经为我们提供了功能非常强大的AVFoundation框架和 MediaPlayer框架.其中AVFoundation框架 ...

  8. iOS 播放音频的几种方法

    Phone OS 主要提供以下了几种播放音频的方法: System Sound Services AVAudioPlayer 类 Audio Queue Services OpenAL 1. Syst ...

  9. ios不触发事件也能播放音频

    ios不触发事件也能播放音频. 首先界面初始化预加载一个没有声音的音频,代码如下: html: js: $(function(){ $("#start_audio")[0].pla ...

随机推荐

  1. 字符串hash的学习部分 可以算是模板?

    资料来自于http://www.bilibili.com/video/av7230433/ 定义这个字符串为s ①单hash hash[i] = (hash[i - 1] * p + idx(s[i] ...

  2. POJ 2318/2398 叉积性质

    2318 2398 题意:给出n条线将一块区域分成n+1块空间,再给出m个点,询问这些点在哪个空间里. 思路:由于只要求相对位置关系,而对具体位置不关心,那么易使用叉积性质得到相对位置关系(左侧/右侧 ...

  3. stat命令--文件权限属性设置

    stat命令文件权限属性设置 stat命令用于显示文件的状态信息. stat命令的输出信息比ls命令的输出信息要更详细. 语法 stat(选项)(参数) 选项 -L:支持符号连接: -f:显示文件系统 ...

  4. Sublime之插件的安装(二)

    前不久的文章里面,有讲过关于sublime插件的具体的安装,这里就不多说了~ 在使用sublime进行打开html页面的时候,是不是经常右击-->view in brower,是不是用多了感觉很 ...

  5. 爬虫--selenium

    什么是selenium? 基本使用 from selenium import webdriver from selenium.webdriver.common.by import By from se ...

  6. android 图片旋转 移动 放大缩小

    图片的变化主要是matrix的变化,对matrix不懂的可以先了解下matrxi. public class FunnyView extends View { /* * 手指按下时可能是移动 也可能是 ...

  7. MongoDB之数据库命令操作(二)

    现在详细学习一下mongodb的数据库操作. 查询语句 db.xxx(集合name).find() # 查询 db.xxx(集合name).findOne() # 只返回一个 db.xxx(集合nam ...

  8. python基础之常用的高阶函数

    前言 高阶函数指的是能接收函数作为参数的函数或类:python中有一些内置的高阶函数,在某些场合使用可以提高代码的效率. map() map函数可以把一个迭代对象转换成另一个可迭代对象,不过在pyth ...

  9. linux常用命令一些解释

    ls 命令是linux下最常用的命令.ls命令就是list的缩写缺省下ls用来打印出当前目录的清单如果ls指定其他目录那么就会显示指定目录里的文 件及文件夹清单. 通过ls 命令不仅可以查看li ...

  10. Java线上应用故障排查之一:高CPU占用【转】

    近期java应用,CPU使用率一直很高,经常达到100%,通过以下步骤完美解决,分享一下. 方法一: 转载:http://www.linuxhot.com/java-cpu-used-high.htm ...