iOS在线音频播放FreeStreamer

来源:互联网 发布:网络插画培训 编辑:程序博客网 时间:2024/04/28 14:59

前言:在上文iOS录音实践中我们用到了AVAudioPlayer来播放本地音频文件。可是在实际应用中我们需要播放网络音频文件,那么在iOS中如何播放网络流媒体呢?就是使用AudioToolbox框架中的音频队列服务Audio Queue Services。本文将介绍第三方优秀开源框架FreeStreamer

 

一 FreeStreamer 功能简介

FreeStreamer是适用于iOS和OS X的音频播放引擎, 专门为播放音频流而设计。该引擎示范UI简单,效率高,占用内存少,用C++写成。

功能:
高效低内存占用(Objective-C方法调用不会额外消耗性能)
支持ShoutCast和IceCast流媒体以及标准的HTTP协议
可检测流媒体格式
支持ShoutCast metadata
支持暂停,比如因通话暂停播放
支持后台播放
支持ID3v2
支持Podcast RSS feeds
内容可以被储存在文件中(查看OS X app)
可访问PCM音频示例
包含频率分析器(可查看Additions和iOS app)

 

二 使用方法

 

1 使用cocoapods安装FreeStreamer.

2 示例

 

?

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

#import ViewController.h

#import FSAudioStream.h

 

@interface ViewController ()

 

@property (nonatomic,strong) FSAudioStream *audioStream;

 

@end

 

@implementation ViewController

 

- (void)viewDidLoad {

    [super viewDidLoad];

 

    [self.audioStream play];

}

 

/**

 *  取得本地文件路径

 *

 *  @return 文件路径

 */

-(NSURL *)getFileUrl{

    NSString *urlStr=[[NSBundle mainBundle]pathForResource:@飞鸟.mp3 ofType:nil];

    NSURL *url=[NSURL fileURLWithPath:urlStr];

    return url;

}

-(NSURL *)getNetworkUrl{

    NSString *urlStr=@视频地址<span new="" style="font-family:" times="">;</span>

?

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

    NSURL *url=[NSURL URLWithString:urlStr];

    return url;

}

 

/**

 *  创建FSAudioStream对象

 *

 *  @return FSAudioStream对象

 */

-(FSAudioStream *)audioStream{

    if (!_audioStream) {

        NSURL *url=[self getNetworkUrl];

        //创建FSAudioStream对象

        _audioStream=[[FSAudioStream alloc]initWithUrl:url];

        _audioStream.onFailure=^(FSAudioStreamError error,NSString *description){

            NSLog(@播放过程中发生错误,错误信息:%@,description);

        };

        _audioStream.onCompletion=^(){

            NSLog(@播放完成!);

        };

        [_audioStream setVolume:0.5];//设置声音

    }

    return _audioStream;

}

 

@end

 

0 0
原创粉丝点击