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

ios9音频应用关联

iOS9音频应用中对于在主视图上添加的视图或控件,在使用它们时必须要与插座变量进行关联。ios9插座变量其实就是为主视图中的视图或者控件起的别名,类似于实例化的对象。将主ios9视图中的Play Button按钮控件与插座变量playButton进行关联。具体的操作步骤如下:

(1)使用设置编辑器的三个视图方式的图标,如图2.14所示,将Xcode的界面调整为如图2.15所示的效果。

图2.14  编辑器的三个视图方式的图标

 

图2.15  调整界面

(2)按住Ctrl键拖动主视图中的Play Button对象,这时会出现一个蓝色的线条,将这个蓝色的线条拖动到ViewController.swift文件中,如图2.16所示。

 

图2.16  出现蓝色的线条

(3)松开鼠标后,会弹出一个对话框,如图2.17所示。

 

图2.17  弹出对话框

(4)在Name文本框中输入名称playButton,如图2.18所示。

 

图2.18  输入名称

注意:Name这一项输入的名称是任意的。

(5)选择Connect按钮,关闭对话框,这时在ViewController.swift文件中自动生成一行代码,如图2.19所示。

 

图2.19  操作变量

注意:生成的代码被叫做插座变量。

将主视图中的More Settings View视图与插座变量moreSettingsView进行关联。将主视图中的Play Button按钮控件与动作playAudio进行关联(动作其实就是方法,一般使用在控件中,如按钮,开关、滑块等)。具体的操作步骤如下:

(1)使用设置编辑器的三个视图方式的图标,将Xcode的界面调整为和图2.15一样的效果。

(2)按住Ctrl键拖动主视图中的Play Button对象,这时会出现一个蓝色的线条,将这个蓝色的线条拖动到ViewController.swift文件中,如图2.20所示。

 

图2.20  按住Ctrl键拖动界面中的按钮对象

(3)松开鼠标后,会弹出声明关联插座变量一起进行的对话框。将Connection选项设置为Action,表示关联的是一个动作;将Name设置为playAudio,表示关联的动作名为playAudio,如图2.21所示。

 

图2.21  填写对话框

(4)将Connection选项设置为Action,表示关联的是一个动作;将Name设置为playAudio,表示关联的动作名为playAudio,如图2.22所示。

 

图2.22  动作

此时,当用户轻拍Play Button按钮后,一个叫playAudio()的方法就会被触发。

iOS 9音频应用功能代码

最后就是播放音频文件的代码实现部分,也就是需要使用到在2.1节中所讲解的内容。打开ViewController.swift文件,编写代码,此代码实现音频播放的功能。代码如下:

  • import UIKit
  • import AVFoundation
  • class ViewController: UIViewController {
  • @IBOutlet weak var playButton: UIButton!
  • @IBOutlet weak var moreSettingsView: UIView!
  • var audioEffect:AVAudioPlayer?=nil
  • override func viewDidLoad() {
  • super.viewDidLoad()
  • // Do any additional setup after loading the view, typically from a nib.
  • moreSettingsView.hidden=true
  • let path=NSBundle.mainBundle().pathForResource("Liekkas", ofType: "mp3")
  • let pathURL=NSURL(fileURLWithPath: path!)
  • //打开音频文件
  •  do {
  •             audioEffect=try AVAudioPlayer(contentsOfURL: pathURL)
  •         } catch _ {
  •             audioEffect = nil
  •         }
  • audioEffect?.prepareToPlay()                                                                              //添加音频文件到缓存中
  • }
  • @IBAction func playAudio(sender: AnyObject) {
  • //没有播放
  • audioEffect?.play()                                                                                   //播放声音
  • playButton.setBackgroundImage(UIImage(named: "pauseImage.png"), forState: UIControlState.Normal)
  • }
  • override func didReceiveMemoryWarning() {
  • super.didReceiveMemoryWarning()
  • // Dispose of any resources that can be recreated.
  • }
  • }

此时运行程序,会看到如图2.23所示的效果。当开发者轻拍开始按钮,此时音频文件就会进行播放,并且开始按钮变为了暂停按钮,如图2.24所示。

 

图2.23  初始状态                            图2.24  播放音乐

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

iOS 9音频应用播放音频之第一个ios9音频实例2的更多相关文章

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

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

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

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

  3. iOS Dev (20) 用 AVAudioPlayer 播放一个本地音频文件

    iOS Dev (20) 用 AVAudioPlayer 播放一个本地音频文件 作者:CSDN 大锐哥 博客:http://blog.csdn.net/prevention 步骤 第一步:在 Proj ...

  4. iOS Dev (21) 用 AVPlayer 播放一个本地音频文件

    iOS Dev (21) 用 AVPlayer 播放一个本地音频文件 作者:CSDN 大锐哥 博客:http://blog.csdn.net/prevention 前言 这篇文章与上一篇极其相似,要注 ...

  5. iOS 9音频应用播放音频之iOS 9音频播放进度

    iOS 9音频应用播放音频之iOS 9音频播放进度 iOS 9音频应用开发播放进度 音频文件在播放后经过了多久以及还有多久才可以播放完毕,想必是用户所关注的问题.为了解决这一问题,在很多的音乐播放器中 ...

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

    iOS 9音频应用播放音频之控制播放速度 iOS 9音频控制播放速度 iOS9音频文件在播放时是以一定的速度进行的.这个速度是可以进行更改的,从而实现iOS9音频文件的快速播放和慢速播放功能.要实现i ...

  7. iOS 9音频应用播放音频之音量设置与声道设置

    iOS 9音频应用播放音频之音量设置与声道设置 iOS 9音频应用音量设置 音量又称响度.音强,是指人耳对所听到的声音大小强弱的主观感受,其客观评价尺度是声音的振幅大小.在iOS 9音频应用的应用中, ...

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

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

  9. iOS 9音频应用播放音频之ios9音频基本功能

    iOS 9音频应用播放音频之ios9音频基本功能 在iOS 9音频应用开发中最为简单和常用的就是AVFoundation框架中的AVAudioPlayer类.虽然AVAudioPlayer类不能播放网 ...

随机推荐

  1. 您是哪个等级的CSS开发人员?

    我们在不断的学习,追求进步与提高,到底学到什么程度了,到底是 不是真的了解CSS,是哪个层次了呢.我们来对照一下. 第0级:CSS?那不是一个多人射击游戏吗?  CSS? Isn't that a m ...

  2. HDU 1166 敌兵布阵 (树状数组 单点修改+区间查询)

    题目链接 Problem Description C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了.A国在海岸线沿直线布置了N个工兵营地,Derek和T ...

  3. ASP.NET EF(LINQ/Lambda查询)

    EF(EntityFrameWork) ORM(对象关系映射框架/数据持久化框架),根据实体对象操作数据表中数据的一种面向对象的操作框架,底层也是调用ADO.NET ASP.NET MVC 项目会自动 ...

  4. textarea输入框随内容撑开高度

    原文链接 方法一(jquery): $('textarea').each(function () {  this.setAttribute('style', 'height:' + (this.scr ...

  5. 搭建自己的PHP框架心得——转载

    原文:http://www.cnblogs.com/zhenbianshu/p/5331165.html 前言 说到写PHP的MVC框架,大家想到的第一个词--“造轮子”,是的,一个还没有深厚功力的程 ...

  6. 使用qt写的简单的图片浏览器

    功能特别简单,支持png,jpg,bmp,gif文件,支持自适应窗口大小,支持放大缩小,旋转功能还有点问题,支持上下按键选择图片 因为初学qt,所以很多东西都不太会,而且c++学的不是太好,没有怎么使 ...

  7. java中参数传递--值传递,引用传递

    java中的参数传递——值传递.引用传递   参数是按值而不是按引用传递的说明 Java 应用程序有且仅有的一种参数传递机制,即按值传递. 在 Java 应用程序中永远不会传递对象,而只传递对象引用. ...

  8. csu 1549: Navigition Problem(几何,模拟)

    1549: Navigition Problem Time Limit: 1 Sec  Memory Limit: 256 MBSubmit: 305  Solved: 90[Submit][Stat ...

  9. PHP 执行系统外部命令的函数- system() exec() passthru()

    PHP 执行系统外部命令的函数: system() exec() passthru()区别:system() 输出并返回最后一行shell结果.exec() 不输出结果,返回最后一行shell结果,所 ...

  10. serial minicom

    这是一篇讲述串口很好的入门教程: http://users.ece.utexas.edu/~valvano/Volume1/E-Book/C11_SerialInterface.htm 如何显示串口数 ...