zoukankan      html  css  js  c++  java
  • [Xcode 实际操作]六、媒体与动画-(16)实现音乐的背景播放

    目录:[Swift]Xcode实际操作

    本文将演示音乐的背景播放功能

    打开项目信息配置文件【info.plist】。

    需要在配置文件中进行一些操作,使程序支持音乐的背景播放。

    点击鼠标右键,弹出右键菜单。

    在弹出的菜单中选择【Add Row】添加一行命令。

    在键名输入框内,输入需要设置的键名:【Required background modes】

    点击右向箭头弹出隐藏的内容。

    在右侧的值输入框内进行点击,用来设置键值。

    点击选择键对应的值:【App plays audio or streams audio/video AirPlay】

    使程序支持:后台播放本地音频、网络流音频、以及使用AirPlay播放视频。

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

     1 import UIKit
     2 //首先引入需要使用的流媒体基础框架,
     3 //它能收集各种多媒体数据。
     4 //这些数据可以来自不同的输入设备,
     5 //比如摄像机、录音机等
     6 import AVFoundation
     7 
     8 class ViewController: UIViewController {
     9 
    10     //初始化音频播放对象,并将音频播放对象,作为视图控制器类的属性
    11     var audioPlayer:AVAudioPlayer = AVAudioPlayer()
    12     
    13     override func viewDidLoad() {
    14         super.viewDidLoad()
    15         // Do any additional setup after loading the view, typically from a nib.
    16         
    17         //获得音频会话对象,该对象属于单例模式,
    18         //也就是不用开发者而自行实例化。
    19         //这个类在各种音频环境中,起着非常重要的作用
    20         let session = AVAudioSession.sharedInstance()
    21 
    22         //在音频播放前,首先创建一个异常捕捉语句
    23         do{
    24             //启动音频会话管理,此时会阻断后台音乐的播放
    25             try session.setActive(true)
    26             //Swift内置支持检查API可用性,这可确保不会意外使用在给定部署目标上不可用的API。
    27             if #available(iOS 10.0, *) {
    28                 //设置音频播放的类别,表示该应用仅支持音频的播放
    29                 try session.setCategory(.playback, mode: .default)
    30             } else {
    31                 // Fallback on earlier versions
    32             }
    33             //设置应用程序支持接收远程控制事件
    34             UIApplication.shared.beginReceivingRemoteControlEvents()
    35             
    36             //定义一个字符串常量,描述声音文件的路径
    37             let path = Bundle.main.path(forResource: "music", ofType: "mp3")
    38             //将字符串路径,转换为网址路径
    39             let soundUrl = URL(fileURLWithPath: path!)
    40             
    41             //对音频播放对象进行初始化,并加载指定的音频文件
    42             try audioPlayer = AVAudioPlayer(contentsOf: soundUrl)
    43             //为音频播放做好准备
    44             audioPlayer.prepareToPlay()
    45             //设置音频播放对象的音量大小
    46             audioPlayer.volume = 1.0
    47             //设置音频播放的次数,-1为无限循环播放
    48             audioPlayer.numberOfLoops = -1
    49             //开始音频素材的播放
    50             audioPlayer.play()
    51             
    52         } catch{
    53             print(error)
    54         }
    55     }
    56 
    57     override func didReceiveMemoryWarning() {
    58         super.didReceiveMemoryWarning()
    59         // Dispose of any resources that can be recreated.
    60     }
    61 }
  • 相关阅读:
    is_enable()、is_displayed()、isSelected()
    python selenium(常用关键字)
    Jenkins 构建 Jmeter 项目之源代码管理(SVN)
    Jenkins 构建 Jmeter 项目
    SAP SD基础知识之现金销售
    SAP SD基础知识之与FI集成相关的流程与配置
    SAP SD 基础知识之计划行类别(Schedule Line Category)
    SAP MM 事务代码MRKO触发的财务凭证不会出现在PO History里
    SAP MM 对于MRKO事务代码的几点优化建议
    SAP SD 销售中的借贷项凭证
  • 原文地址:https://www.cnblogs.com/strengthen/p/10040904.html
Copyright © 2011-2022 走看看