博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Swift通天遁地]八、媒体与动画-(1)实现音频的播放和停止
阅读量:5039 次
发布时间:2019-06-12

本文共 3746 字,大约阅读时间需要 12 分钟。

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

➤微信公众号:山青咏芝(shanqingyongzhi)
➤博客园地址:山青咏芝()
➤GitHub地址:
➤原文地址: 
➤如果链接不是山青咏芝的博客园地址,则可能是爬取作者的文章。
➤原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

目录:

本文将演示实现对音频播放的控制。

首先确保在项目中,已经安装了所需的第三方类库,点击查看安装的配置文件。

1 platform :ios, '8.0'2 use_frameworks!3 4 target 'DemoApp' do5     source 'https://github.com/CocoaPods/Specs.git'6     pod 'CryptoSwift', :git => "https://github.com/krzyzanowskim/CryptoSwift", :branch => "master"7 end

根据配置文件中的相关设置,安装第三方类库。

完成安装之后,双击打开项目文件【DemoApp.xcworkspace】

往项目中导入了一个音频文件。

在左侧的项目导航区,打开视图控制器的代码文件【ViewController.swift】

1 import UIKit 2 //在当前的类文件中,引入已经安装的第三方类库。 3 import AudioPlayer 4  5 class ViewController: UIViewController { 6     //添加一个音频播放器,作为当前类的一个属性。 7     var audioPlayer:AudioPlayer! 8     override func viewDidLoad() { 9         super.viewDidLoad()10         // Do any additional setup after loading the view, typically from a nib.11         // Initialize12         13         //添加一个按钮,当用户点击该按钮时,开始播放该文件。14         let play = UIButton(frame: CGRect(x: 40, y: 80, width: 240, height: 40))15         //设置按钮在正常状态下的标题文字16         play.setTitle("Play", for: .normal)17         //设置按钮的背景颜色为橙色18         play.backgroundColor = UIColor.orange19         //给播放按钮控件绑定点击事件20         play.addTarget(self, action: #selector(ViewController.playMusic(_:)), for: UIControl.Event.touchUpInside)21         22         //添加第二个按钮,当用户点击该按钮时,停止音频文件的播放23         let stop = UIButton(frame: CGRect(x: 40, y: 180, width: 240, height: 40))24         //设置按钮在正常状态下的标题文字25         stop.setTitle("Stop", for: .normal)26         //设置按钮的背景颜色为橙色27         stop.backgroundColor = UIColor.orange28          //给停止按钮控件绑定点击事件29         stop.addTarget(self, action: #selector(ViewController.stopMusic(_:)), for: UIControl.Event.touchUpInside)30         31         //设置根视图的背景颜色32         self.view.backgroundColor = UIColor.orange33         //将两个按钮依次添加到根视图34         self.view.addSubview(play)35         self.view.addSubview(stop)36         37         //添加一个异常捕捉语句,用来初始化音频播放对象38         do39         {40             //读取项目中的音频文件,并初始化一个音频播放器41             try audioPlayer = AudioPlayer(fileName: "music.mp3")42             43             //给音频播放器添加一个播放结束事件监听器,44             audioPlayer.completionHandler = {(_ didFinish: Bool) -> Void in45                 //当播放结束时,在控制台输出提示语句。46                 print("---The music finishes playing, or is stopped.")47             }48         }49         catch50         {51             print("---Sound initialization failed")52         }53     }54     55     //添加一个方法,用来响应播放按钮的点击事件56     @objc func playMusic(_ button:UIButton)57     {58         //设置音频播放器音量的大小,范围从0.0到1.059         audioPlayer.volume = 0.860         //设置音频播放的循环次数为361         audioPlayer.numberOfLoops = 362         //调用音频播放器的播放方法,开始播放指定的音频文件。63         audioPlayer.play()64     }65     66     //添加一个方法,用来响应停止按钮的点击事件67     @objc func stopMusic(_ button:UIButton)68     {69         //当音频播放器处于播放状态时70         if audioPlayer.isPlaying71         {72             //在控制台输出播放的时长73             print(audioPlayer.duration)74             //输出播放器当前的时刻75             print(audioPlayer.currentTime)76             //在控制台输出音频文件的名称77             print(audioPlayer.name ?? "")78            //以及音频文件在项目中的路径79             print(audioPlayer.url ?? "")80             81             //调用播放器的淡出方法,在1秒钟内,逐渐停止音频的播放82             audioPlayer.fadeOut(duration: 1.0)83             84             //或者立即停止音乐的播放,85             //直接调用音频播放器的停止方法。86             audioPlayer.stop()87         }88     }89     90     override func didReceiveMemoryWarning() {91         super.didReceiveMemoryWarning()92         // Dispose of any resources that can be recreated.93     }94 }

 

转载于:https://www.cnblogs.com/strengthen/p/10353743.html

你可能感兴趣的文章
Python 拓展之推导式
查看>>
[Leetcode] DP-- 474. Ones and Zeroes
查看>>
80X86寄存器详解<转载>
查看>>
c# aop讲解
查看>>
iterable与iterator
查看>>
返回顶部(动画)
查看>>
webpack+react+antd 单页面应用实例
查看>>
Confluence 6 SQL Server 数据库驱动修改
查看>>
Confluence 6 通过 SSL 或 HTTPS 运行 - 备注和问题解决
查看>>
【47.76%】【Round #380B】Spotlights
查看>>
Git(使用码云)
查看>>
分享Java web 开发必游之路
查看>>
IIS初始化(预加载),解决第一次访问慢,程序池被回收问题(转载)
查看>>
Bean的Scope
查看>>
【BZOJ】3142: [Hnoi2013]数列
查看>>
http初探
查看>>
elasticsearch的安装
查看>>
__next__()
查看>>
爬取:中国大学排名
查看>>
聊天室(C++客户端+Pyhton服务器)_1.框架搭设
查看>>