NDAudioSuite 2.1.1

NDAudioSuite 2.1.1

测试已测试
Lang语言 Obj-CObjective C
许可证 MIT
发布最后发布2016年7月
SPM支持 SPM

Drew Pitchford 维护。



  • 作者
  • Drew Pitchford 和 Nick Sinas

NDAudioSuite

NDAudioSuite 是一个易于安装和使用的 iOS 音频文件流引擎。它还包括一个轻量级的文件下载 API,帮助管理 iOS 设备上的文件。


要求

  • iOS 8.0

安装

NDAudioSuite 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile 中:

pod 'NDAudioSuite'

如果您想测试 NDAudioSuite 的 beta 版本,可以安装最新的 develop 版本。

pod 'NDAudioSuite', :git => 'https://github.com/metova/NDAudioSuite.git', :branch => 'develop'

使用

NDAudioPlayer

代理

NDAudioPlayer 有 4 个可选代理方法,您可以使用它们将音频流集成到您的应用程序中。它们是:

- (void) NDAudioPlayerIsReady: (NDAudioPlayer * _Nonnull)sender

此方法通知代理内部 AVPlayer 已经准备好。通常,您可能不需要实现这个方法。然而,在某些情况下,您可能希望知道 AVPlayer 是否已经准备好开始播放音频。

- (void) NDAudioPlayerPlaylistIsDone: (NDAudioPlayer * _Nonnull)sender

顾名思义,该方法在您提供的播放列表播放完毕时被调用。

- (void) NDAudioPlayerTrackIsDone: (NDAudioPlayer * _Nonnull)sender nextTrackIndex:(NSInteger)index

该方法在 NDAudioPlayer 播放当前曲目完毕时调用。nextTrackIndex 参数告诉您播放列表正在播放哪个索引的曲目。

- (void) NDAudioPlayerTimeIsUpdated: (NDAudioPlayer * _Nonnull)sender withCurrentTime:(CGFloat)currentTime

此方法以您所需的频率调用(默认为每 1 秒调用一次)。您可以通过设置 NDAudioSuite 上的 timeScale 属性来更改频率(其中 '1' = 1 秒)。通常,这可以用来更新音频曲目进度。

准备播放音频

为了播放您的音频,您需要做以下两件事:

首先,创建一个 NDAudioSuite 的实例。

Objective-C

NDAudioSuite myPlayer = [NDAudioSuite new];

Swift

let myPlayer = NDAudioSuite()

其次,调用 prepareToPlay:atIndex:atVolume 方法,传入您的播放列表、音频开始播放的位置以及您想要播放的音量。

[self.myPlayer prepareToPlay:self.myPlaylist atIndex:index  atVolume:volume];
myPlayer.prepareToPlay(myPlaylist, atIndex: index, atVolume:volume)

注意:您还可以通过将属性audioSessionCategory设置为所选择的音频会话类别来配置音频会话类型。默认值是AVAudioSessionCategoryPlayAndRecord

音频操作

正如您所预期的,有4种方法允许您播放、暂停、恢复和停止音频

- (void)playAudio

- (void)pauseAudio

- (void)resumeAudio

- (void)stopAudio

还有方法可以切换随机播放,跳过下一曲目和上一个曲目

- (void) shuffleTracks:(BOOL)enable

- (NSInteger) skipTrack

- (NSInteger) previousTrack

如果您需要当前(播放)曲目的索引,可以使用

- (NSInteger)getCurrentTrackIndex

在初始设置之后,您可以使用以下方法来设置音频音量

- (void) setAudioVolume:(CGFloat)newVolume

您可以使用以下方法获取当前音量

- (CGFloat)getAudioVolume

您还可以获取当前曲目的总时长

- (CGFloat) getTotalDuration

可以使用您设置的间隔来衰减音量

- (void)fadeOutWithIntervals:(CGFloat)interval

没有音频播放器组件会不提供音频回退和快进的功能。NDAudioSuite在这方面为您提供全面支持!

- (void)fastForwardToTime:(CGFloat)time

- (void)rewindToTime:(CGFloat) time

注意:使用FF/RW方法与audioTimeIsUpdated:withCurrentTime:结合使用,以在您所需的任何间隔向前和向后移动。

最后,您始终可以为您NDAudioSuite对象设置一个新的播放列表。

- (void)setPlaylistToArray:(NSMutableArray * _Nonnull)newPlaylist

NDAudioDownloadManager

代理

NDAudioDownloadManager只有一个代理方法,在文件下载完成后通知您。它在调用downloadFileFromURL:withName:andExtension:completion时被调用相同的次数。

- (void) NDAudioDownloadManager:(NDAudioDownloadManager *_Nonnull)sender currentDownloadIsCompleteWithRemainingDownloads:(NSUInteger)count

文件操作

NDAudioDownloadManager有4个方法可以帮助您管理文件下载;上面提到的downloadFileFromURL:withName:andExtension:completion以及另外两个

- (NSURL *__nullable)getDownloadedFileFromDiskWithName:(NSString *_Nonnull)fileToBePlayed andExtension:(NSString *_Nonnull)extension

- (NSArray *__nullable)getAllDownloadedFilesFromDiskWithExtension:(NSString *_Nonnull)extension

- (void)deleteFromDiskFileWithURL:(NSURL *_Nonnull)url

方法名称解释自明。对于Swift,上面的两个非void方法都返回一个Optional。

文件名辅助工具

NDAudioDownloadManager还有两个方法可以帮助您从文件名中获取和删除扩展名

- (NSString *_Nonnull)getExtensionFromFile:(NSString *_Nonnull)fileNameWithExtension

- (NSString *_Nonnull)removeExtensionFromFile:(NSString *_Nonnull)fileName

贡献者

NDAudioSuite由Metova Inc.拥有和维护

贡献者

如果您想为NDAudioSuite做出贡献,请参阅我们的CONTRIBUTING指南。


许可

NDAudioSuite可在MIT许可下提供。有关更多信息,请参阅LICENSE文件。