iOS在线音频播放FreeStreamer

前言:在上文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 示例

#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 style="font-family: Georgia, 'Times New Roman', Times, sans-serif;">";</span>
    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


FreeStreamer的功能很强大,了解其他用法请访问官网

你可能感兴趣的:(ios,音频播放,在线音频,FreeStreamer)