iOS 9音频应用播放音频之播放控制暂停停止前进后退的设置
iOS 9音频应用播放音频之播放控制暂停停止前进后退的设置
ios9音频应用播放控制
在“iOS 9音频应用播放音频之ios9音频基本功能”一文可以看到AVAudioPlayer类有很多的属性以及方法。本节将AVAudioPlayer类中常使用到的属性和方法进行详细的讲解。
ios9音频应用暂停/停止
在音乐应用程序中都会有一个使音乐停止播放的按钮。当用户轻拍该按钮,正在播放的音乐就会停止。在iOS要想要正在播放的音频停止下来,可以使用AVAudioPlayer类中的pause()方法和stop()方法。
1.暂停
pause()方法的功能是暂停正在播放的音频文件,音频文件仍然准备从暂停处离开恢复播放。其语法形式如下:
- func pause()
2.停止
stop()方法的功能是停止正在播放的音频文件,并撤消所需的播放设置,即如果恢复播放,音频文件就需要重新开始播放。其语法形式如下:
- func stop()
注意:stop()方法在Xcode 6.0之后和pause的功能是一样的,但是帮助文档中对stop()的简介还是以前的。
【示例2-1】以下将以第一个实例为基础,在播放音频的基础上实现暂停音频播放的功能。代码如下:
- @IBAction func playAudio(sender: AnyObject) {
- audioEffect?.play() //播放声音
- playButton.setBackgroundImage(UIImage(named: "pauseImage.png"), forState: UIControlState.Normal)
- playButton.addTarget(self, action: ("pauseAudio"), forControlEvents: UIControlEvents.TouchUpInside)
- }
- func pauseAudio(){
- audioEffect?.pause() //暂停
- playButton.setBackgroundImage(UIImage(named: "playImage.png"), forState: UIControlState.Normal)
- playButton.addTarget(self, action: ("playAudio:"), forControlEvents: UIControlEvents.TouchUpInside)
- }
此时运行程序,在出现的模拟器界面中轻拍播放按钮,此时音频文件就会播放,并且播放按钮会变为暂停按钮;当开发者轻拍暂停按钮,播放的音频文件就会暂停播放,并且暂停按钮就变为原来的播放按钮。
注意:由于在大多数的音乐播放器中都不会出现停止控件,所在在此示例中也就不进行代码实现了。
ios9音频应用前进/后退
在AVAudioPlayer类中有一个currentTime属性。该属性可以用来对当前播放的音频文件的时长进行设置的,即对当前播放的音频文件的播放位置进行设置。该属性值以秒为单位的。其语法形式如下:
- var currentTime: NSTimeInterval
通过对currentTime属性的设置,我们可以实现在音乐应用中的前进后退功能。
1.前进
前进功能就是让正在播放的音频文件前进几秒进行播放。它的实现就是让currentTime属性设置的值进行固定的加法运算。
【示例2-2】以下将以第一个实例为基础,实现前进的功能。具体的操作步骤如下:
(1)将主视图中的Forward Button按钮与动作forwardAudio进行关联。
(2)打开ViewController.swift文件,编写代码,实现前进功能。代码如下:
- @IBAction func forwardAudio(sender: AnyObject) {
- //判断音频文件是否正在播放
- if(audioEffect!.playing){
- //音频文件正在播放,实现前进
- let desiredTime=(self.audioEffect?.currentTime)!+20.0
- //判断设置的时间是否小于音频文件的总时间
- if(desiredTime<self.audioEffect?.duration){
- self.audioEffect?.currentTime=desiredTime //设置当前播放的时间
- }
- }else{
- let alertController = UIAlertController(title: "提示", message: "音乐没有开始播放", preferredStyle: UIAlertControllerStyle.Alert)
- let action = UIAlertAction(title: "知道了", style: UIAlertActionStyle.Default, handler: nil)
- alertController.addAction(action)
- self.presentViewController(alertController, animated: true, completion: nil)
- }
- }
此时运行程序后,在模拟器界面中轻拍播放按钮,此时音频文件就会开始播放,当开发者轻拍前进按钮后,音频文件就会快进20秒然后进行播放。(每轻拍一次就会快进20秒的进度)。
注意:如果开发者没有轻拍播放按钮,而是直接轻拍前进按钮,那么就是弹出“音乐没有开始播放”的警告视图,如图2.25所示。

图2.25 警告视图
2.后退
后退功能就是让正在播放的音频文件后退几秒进行播放。它的实现就是让currentTime属性设置的值进行固定的减法运算。
【示例2-3】以下将以第一个实例为基础,实现后退的功能。具体的操作步骤如下:
(1)将主视图中的Backward Button按钮与动作backwardAudio进行关联。
(2)打开ViewController.swift文件,编写代码,实现后退功能。代码如下:
- @IBAction func backwardAudio(sender: AnyObject) {
- if(audioEffect!.playing){
- //实现后退
- let desiredTime=(self.audioEffect?.currentTime)!-20.0
- //判断指定的时间是否为0
- if(desiredTime<0){
- self.audioEffect?.currentTime=0.0
- }else{
- self.audioEffect?.currentTime=desiredTime
- }
- }else{
- let alertController = UIAlertController(title: "提示", message: "音乐没有开始播放", preferredStyle: UIAlertControllerStyle.Alert)
- let action = UIAlertAction(title: "知道了", style: UIAlertActionStyle.Default, handler: nil)
- alertController.addAction(action)
- self.presentViewController(alertController, animated: true, completion: nil)
- }
- }
- }
此时运行程序后,在模拟器界面中轻拍播放按钮,此时音频文件就会开始播放。当开发者轻拍后退按钮后,音频文件就会后退20秒然后进行播放。(每轻拍一次就会后退20秒的进度)。
注意:如果开发者没有轻拍播放按钮,而是直接轻拍后退按钮,那么就是弹出“音乐没有开始播放”的警告视图。
本文选自:iOS 9音频应用开发基础教程大学霸内部资料,转载请注明出处,尊重技术尊重IT人!
iOS 9音频应用播放音频之播放控制暂停停止前进后退的设置的更多相关文章
- iOS开发拓展篇—封装音频文件播放工具类
iOS开发拓展篇—封装音频文件播放工具类 一.简单说明 1.关于音乐播放的简单说明 (1)音乐播放用到一个叫做AVAudioPlayer的类 (2)AVAudioPlayer常用方法 加载音乐文件 - ...
- ios不触发事件也能播放音频
ios不触发事件也能播放音频. 首先界面初始化预加载一个没有声音的音频,代码如下: html: js: $(function(){ $("#start_audio")[0].pla ...
- IOS音频1:之采用四种方式播放音频文件(一)AudioToolbox AVFoundation OpenAL AUDIO QUEUE
本文转载至 http://blog.csdn.net/u014011807/article/details/40187737 在本卷你可以学到什么? 采用四种方法设计应用于各种场合的音频播放器: 基于 ...
- iOS 9音频应用播放音频之iOS 9音频播放进度
iOS 9音频应用播放音频之iOS 9音频播放进度 iOS 9音频应用开发播放进度 音频文件在播放后经过了多久以及还有多久才可以播放完毕,想必是用户所关注的问题.为了解决这一问题,在很多的音乐播放器中 ...
- iOS 9音频应用播放音频之控制播放速度
iOS 9音频应用播放音频之控制播放速度 iOS 9音频控制播放速度 iOS9音频文件在播放时是以一定的速度进行的.这个速度是可以进行更改的,从而实现iOS9音频文件的快速播放和慢速播放功能.要实现i ...
- iOS 9音频应用播放音频之音量设置与声道设置
iOS 9音频应用播放音频之音量设置与声道设置 iOS 9音频应用音量设置 音量又称响度.音强,是指人耳对所听到的声音大小强弱的主观感受,其客观评价尺度是声音的振幅大小.在iOS 9音频应用的应用中, ...
- iOS 9音频应用播放音频之第一个ios9音频实例2
iOS 9音频应用播放音频之第一个ios9音频实例2 ios9音频应用关联 iOS9音频应用中对于在主视图上添加的视图或控件,在使用它们时必须要与插座变量进行关联.ios9插座变量其实就是为主视图中的 ...
- iOS 9音频应用播放音频之第一个ios9音频实例
iOS 9音频应用播放音频之第一个ios9音频实例 第一个ios9音频实例 为了让开发者可以对上面的内容有更加深入的了解,本节将实现播放音频的第一个实例.在此实例中会涉及到项目的创建.界面设计.关联以 ...
- iOS 9音频应用播放音频之ios9音频基本功能
iOS 9音频应用播放音频之ios9音频基本功能 在iOS 9音频应用开发中最为简单和常用的就是AVFoundation框架中的AVAudioPlayer类.虽然AVAudioPlayer类不能播放网 ...
随机推荐
- Uva5211/POJ1873 The Fortified Forest 凸包
LINK 题意:给出点集,每个点有个价值v和长度l,问把其中几个点取掉,用这几个点的长度能把剩下的点围住,要求剩下的点价值和最大,拿掉的点最少且剩余长度最长. 思路:1999WF中的水题.考虑到其点的 ...
- Python学习笔记(五十)爬虫的自我修养(三)爬取漂亮妹纸图
import random import urllib from urllib import request import os ################################### ...
- 去除IE10+上文本框巨丑无比的删除图标以及显示密码图标
去除IE10+上文本框巨丑无比的删除图标以及显示密码图标 IE浏览器总是让人喜欢让人厌,在最新的IE浏览器(IE10+)上使用表单时,文本框内后面会出现很巨丑无比的“删除图标”以及“显示密码图标”,如 ...
- (1)剑指Offer之斐波那契数列问题和跳台阶问题
一 斐波那契数列 题目描述: 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项. n<=39 问题分析: 可以肯定的是这一题通过递归的方式是肯定能做出来,但是这样会有 ...
- 初窥ThinkPHP
MVC全称(Model View Controller) Model:模型(可以理解位数据库操作模型) View:视图(视图显示) Controller:(控制器) 简单的说框架就是一个类的集合.集合 ...
- 中国区的Azure添加到 VSTS 的 Service Endpoint
把中国区的Azure添加到 VSTS (Visual Studio Team System) 的 Service Endpoint. 这个是使用 VSTS 自动部署到中国区Azure的前置条件. Se ...
- [How to] 使用HBase协处理器---Endpoint客户端代码的实现
1.简介 不同于Observer协处理器,EndPoint由于需要同region进行rpc服务的通信,以及客户端出数据的归并,需要自行实现客户端代码. 基于[How to] 使用HBase协处理器-- ...
- SYN Flood攻击及防御方法 (转)
原文连接:http://blog.csdn.net/bill_lee_sh_cn/article/details/6065704 一.为什么Syn Flood会造成危害 这要从操作系统的TC ...
- laravel 上传文件到亚马逊 aws s3
参考: https://github.com/aws/aws-sdk-php-laravel https://www.jianshu.com/p/e48d82bff20b
- scrollreveal(页面滚动显示动画插件支持手机)
scrollreveal.js是一款可以轻易实现桌面和移动浏览器元素随页面滚动产生动画的js插件.该插件通过配置可以在页面滚动,元素进入视口时产生炫酷的动画效果,同时还支持元素的3D效果,非常的实用. ...