A simple and easy-to-use music engine support playing-while-downloading feature.
- Playing music while downloading.
- Cache downloaded music to disk. You can specify the cache key.
- Tracking downloading and playing progress.
- Background playing.
- Handle interruption.(eg. A coming call)
All dependences are setted as sub module.
- AFDownloadRequestOperation:
- AFNetworking
- ARC only
Just playing:
NCMusicEngine *player = [[NCMusicEngine alloc] init];
player.delegate = self; // If you need...
[player playUrl:url];
NCMusicEngine generates cache key from your music url by default. If you need to manage it yourself, you could use the following method:
[player playUrl:url withCacheKey:@"cachekey"];
Tracking progress please use the following delegates:
- (void)engine:(NCMusicEngine *)engine didChangePlayState:(NCMusicEnginePlayState)playState;
- (void)engine:(NCMusicEngine *)engine didChangeDownloadState:(NCMusicEngineDownloadState)downloadState;
- (void)engine:(NCMusicEngine *)engine downloadProgress:(CGFloat)progress;
- (void)engine:(NCMusicEngine *)engine playProgress:(CGFloat)progress;
I'll keep polishing this engine and keep adding new features. If you have any problems when using this engine, please feel free to drop me an issue or contact me:
- Twitter: http://twitter.com/nickcheng