持久流播放器 1.0.0

持久流播放器 1.0.0

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布上次发布2017年1月

Tyler Sheaffer维护。



  • 作者:
  • calmcom

处理音频文件的播放,同时流式传输,并在流完成后将数据保存到本地URL。已在Calm的iOS生产版中得到实战验证Calm

安装

将以下代码添加到您的Podfile文件中

pod 'PersistentStreamPlayer'

使用方法

PersistentStreamPlayer *remoteAudioPlayer = [[PersistentStreamPlayer alloc] initWithRemoteURL:myHTTPURL
                                                                                     localURL:myFileURL];
remoteAudioPlayer.delegate = self;
[remoteAudioPlayer play];

功能

  • 音频文件流式传输,一有数据立即播放
  • 同时在缓冲区完成后将流式传输的数据保存到文件URL
  • 简单的 playpausedestroy 方法(destroy 清除所有内存资源)
  • 可以无缝循环音频文件。调用 player.looping = YES
  • 公开 timeBuffered,有助于在UI中显示缓冲进度条
  • 处理缓冲区停止后重新启动音频文件(例如,网络速度慢)
  • 不将音频文件数据保存在内存中,因此支持不适合RAM的大型文件

《PersistentStreamPlayerDelegate》协议有一些有用的事件指示器,所有都是可选的

/* called when the data is saved to localURL */
- (void)persistentStreamPlayerDidPersistAsset:(PersistentStreamPlayer *)player;

/* called when the audio file completed */
- (void)persistentStreamPlayerDidFinishPlaying:(PersistentStreamPlayer *)player;

/* called when the play head reaches the buffer head */
- (void)persistentStreamPlayerStreamingDidStall:(PersistentStreamPlayer *)player;

/* called as soon as the asset loads with a duration, helpful for showing a duration clock */
- (void)persistentStreamPlayerDidLoadAsset:(PersistentStreamPlayer *)player;

/* on failure to load asset */
- (void)persistentStreamPlayerDidFailToLoadAsset:(PersistentStreamPlayer *)player;