• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Swift - 制作一个在线流媒体音乐播放器(使用StreamingKit库)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
在之前的文章中,我介绍了如何使用 AVPlayer 制作一个简单的音乐播放器(点击查看1点击查看2)。虽然这个播放器也可以播放网络音频,但其实际上是将音频文件下载到本地后再播放的。
本文演示如何使用第三方的 StreamingKit 库,来实现网络流音频的播放。

一、StreamingKit介绍和配置

1,基本介绍

(1)StreamingKit 是一个适用于 iOS  Mac OSX 的音频播放流媒体库。StreamingKit 提供了一个简洁的面向对象 API,用于在 CoreAudio 框架下进行音频的解压和播放(采用硬件或软件编解码器)处理。
(2)StreamingKit 的主要机制是对从播放器输入的数据源进行解耦,从而使高级定制的数据源可以进行诸如基于流媒体的渐进式下载、编码解码、自动恢复、动态缓冲之类的处理。StreamingKit 是唯一支持不同格式音频文件无缝播放的音频播放流媒体库。

2,主要特点

  • 免费开源
  • 简洁的 API
  • 可读性很强的源代码
  • 精心使用多线程提供了一个快速响应的 API,既能防止线程阻塞,又能保证缓冲流畅
  • 缓冲并无缝播放所有不同格式的音频文件
  • 容易实现的音频数据源(支持本地、HTTPAutoRecovering HTTP 作为数据源)
  • 容易 kuo 扩展数据源以支持自动缓冲、编码等
  • 低耗电和低 CPU 使用率(CPU 使用率 0%,流式处理时使用率为 1%
  • 优化线性数据源,仅随机访问数据源需要搜索
  • StreamingKit0.2.0 使用 AudioUnit API 而不是速度较慢的音频队列 API,允许对原始 PCM 数据进行实时截取以获得并行测量、EQ 等特征
  • 电能计量
  • 内置的均衡器(iOS5.0 及以上版本、OSX10.9 及以上版本)支持音频播放的同时动态改变、启用、禁用均衡器
  • 提供了 iOS 和 Mac OSX 应用实例

3,安装配置

(1)将源码包下载下来后,将其中的 StreamingKit/StreamingKit 文件夹复制到项目中来。

(2)创建桥接头文件,内容如下:
1
#import "STKAudioPlayer.h"

二、制作一个网络音频播放器

1,效果图

(1)程序运行后自动开始播放音乐(整个队列一个有 3 首歌曲,默认先播放第一首)
(2)点击“上一曲”“下一曲”按钮可以切换当前播放歌曲。
(3)歌曲播放过程中进度条会随之变化,进度条右侧会显示出当前歌曲播放时间。
(4)进度条可以拖动,拖动结束后自动播放该时间点的音乐。
(5)点击“暂停”按钮可以交替切换播放器暂停、继续状态。
(6)点击“结束”按钮,结束整个播放器的音乐播放。
 

2,实现步骤

(1)在 info.plist 中添加如下配置以支持 http 传输。
1
2
3
4
5
<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>

(2)为了让播放器能在后台持续播放,我们需要将 Targets -> Capabilities -> BackgroundModes 设为 ON,同时勾选“Audio, AirPlay, and Picture in Picture”。

同时还要在 AppDelegate.swift 中注册后台播放。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import UIKit
import AVFoundation
 

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap