iOS在线音频播放FreeStreamer

原创 2015年07月08日 11:22:24

前言:在上文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使用技巧心得

在公司的项目中需要用到音频播放功能.刚开始做的比较简单.给个URL用AVplayer播放就能搞定了,后来版本迭代.要加入缓存功能.于是开始研究音频框架,在一周多的时间里研究了各种框架各有利弊,使用豆瓣...
  • gaohengMj
  • gaohengMj
  • 2017年02月22日 11:47
  • 2328

对FreeStreamer的单例形式封装

直接代码吧,注释已经加好。 .h 文件如下 // // FreeStreamerPlayer.h // DownloadList // // Created by puslar on 16/...
  • puslar_snow
  • puslar_snow
  • 2016年09月20日 18:22
  • 1066

iOS MP3流媒体播放 边缓冲边播放 FreeStreamer框架

在网上看到有人说AVplay就可以播放流媒体,便拿过来使用,,结果发现无论如何它都是要把MP3缓存完成之后才开始播放,,音频长的就要等好久,对于M4A 格式的还有好些,MP3就不行了,,这样体验非常差...
  • flg1554112450
  • flg1554112450
  • 2017年04月10日 17:16
  • 2359

音频队列服务 AudioStreamer、FreeStreamer

音频队列服务 AudioStreamer、FreeStreamer
  • Sico2Sico
  • Sico2Sico
  • 2016年08月29日 11:26
  • 661

FreeStreamer 在线流媒体播放

FreeStreamer https://github.com/muhku/FreeStreamer Introduction FreeStreamer is an audi...
  • u013368288
  • u013368288
  • 2014年04月16日 23:10
  • 2547

FreeStreamer

  • 2015年04月23日 16:51
  • 1.32MB
  • 下载

获取本地音频文件 FreeStreamer播放本地音频

1. 获取工程下mp3文件的路径 //获取本地的mp3文件 - (NSMutableArray *)getDatasource {     //获取本地的mp3文件 ...
  • u011347072
  • u011347072
  • 2015年11月26日 20:57
  • 988

iOS开发之音频解析第三方框架介绍

最近在做iOS音频相关的App,在做之前选择了三种解决方案。第一种方案是使用苹果自带的音频解析类AVPlayer,虽然AVPlayer也可以播放音频。但是要做类似于QQ音乐这样的App,使用AVPla...
  • iOS_Water
  • iOS_Water
  • 2016年05月17日 10:08
  • 2478

iOS在线音频播放FreeStreamer

前言:在上文iOS录音实践中我们用到了AVAudioPlayer来播放本地音频文件。可是在实际应用中我们需要播放网络音频文件,那么在iOS中如何播放网络流媒体呢?就是使用AudioToolbox框架中...
  • bjx18356163055
  • bjx18356163055
  • 2016年02月15日 19:33
  • 133

IOS音频的流媒体播放

大家应该已经注意到了,无论是前面的录音还是音频播放均不支持网络流媒体播放,当然对于录音来说这种需求可能不大,但是对于音频播放来说有时候就很有必要了。AVAudioPlayer只能播放本地文件,并且是一...
  • ciwei_numberOne
  • ciwei_numberOne
  • 2015年06月04日 11:16
  • 2165
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS在线音频播放FreeStreamer
举报原因:
原因补充:

(最多只允许输入30个字)