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. 用django框架做自己的blog

    说明:我的系统环境是ubuntu 14.10版本的,整理这篇博客,主要是自己记性太不好了,老忘东西,教训一下自己.哈哈 参考文章 createing blog 1,part-1-creating-bl ...

  2. 【CodeForces】576 B. Invariance of Tree

    [题目]B. Invariance of Tree [题意]给定n个数的置换,要求使n个点连成1棵树,满足u,v有边当且仅当a[u],a[v]有边,求一种方案或无解.n<=10^5. [算法]数 ...

  3. Razor使用Parse()时最好指定“缓存名”

    为什么? 本文的标题,明显有一种提醒的口吻. 从18年的生活经验看,如果想提醒人要怎么办,不要怎么办. 最好说明原因.那么小编开始说明原因喽. 哦对,说原因之前,先说交代一下背景,一句话 在非mvc下 ...

  4. Oracle数据库语句

    Oracle数据库语句 ORACLE支持五种类型的完整性约束 NOT NULL (非空)--防止NULL值进入指定的列,在单列基础上定义,默认情况下,ORACLE允许在任何列中有NULL值. CHEC ...

  5. C# 操作资源文件

    (1)首先引用这两个命名空间 (2)两种方式调用资源文件中的内容 private void button2_Click(object sender, EventArgs e) { //通过Resour ...

  6. python3爬虫.3.下载网页图片

    目标,豆瓣读书, 下载页面书籍图片. import urllib.request import re #使用正则表达式 def getJpg(date): jpgList = re.findall(r ...

  7. Mysql储存过程1: 设置结束符与储存过程创建

    #显示储存过程 show procedure status; #设置结束符 delimiter $; #创建储存过程 create procedure procedure_name() begin - ...

  8. 在Nginx服务器上屏蔽IP

    采集和防止采集是一个经久不息的话题,一方面都想搞别人的东西,另一方面不想自己的东西被别人搞走. 本文介绍如何利用nginx屏蔽ip来实现防止采集,当然也可以通过iptable来实现. 1.查找要屏蔽的 ...

  9. selenium只打开一个浏览器窗口

    from selenium.webdriver import Remote from selenium.webdriver.chrome import options from selenium.co ...

  10. Eclipse java项目转换为web项目

    1.打开.project文件,并修改文件, 修改如下: 找到:<natures> </natures>代码段,在代码段中加入如下内容并保存: <nature>org ...