- 做项目的时候想着,做完再写。等候做完了,写的时候不知道要些什么了,蛋疼。
- 这次用到的东西还是挺全的,电商新闻类的,说说音乐播放器吧,AVAudioPlayer 这个不支持网络在线播放,只能下载到本地,不全下来的时候,下载一点存到本地在读取,读取数据流data,这样一点也不好,体验度太差
- 我用的是AVPlayer,我视频也是用的这个
- 我建了一个播放器的单例,一个.h 一个.m 上代码,自己看,可以直接拿来用做播放器的
- #import “MusicManager.h”
static MusicManager *_musicManager = nil;
@implementation MusicManager
(instancetype)shareInfo
{
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
_musicManager = [[MusicManager alloc] init];
});
return _musicManager;
}(instancetype)init
{
if (self = [super init]) {
_player = [[AVPlayer alloc] init];
}
return self;
}
// 播放
- (void)playerPlay
{
[_player play];
_isPlay = YES;
}
- (void)playerPause
{
[_player pause];
_isPlay = NO;
}
(void)playAndPause
{
if (self.isPlay) {
[self playerPause];
}else{
[self playerPlay];
}
}(void)playPrevious
{
if (self.index == 0) {
self.index = self.musicArray.count - 1;
}else{
self.index–;
}
}(void)playNext
{
if (self.index == self.musicArray.count - 1) {
self.index = 0;
}else{
self.index++;
}
}(void)playerVolumeWithVolumeFloat:(CGFloat)volumeFloat
{
self.player.volume = volumeFloat;
}(void)playerProgressWithProgressFloat:(CGFloat)progressFloat
{
[self.player seekToTime:CMTimeMakeWithSeconds(progressFloat, 1) completionHandler:^(BOOL finished) {
[self playerPlay];
}];
}(void)replaceItemWithUrlString:(NSString *)urlString
{
AVPlayerItem *item = [[AVPlayerItem alloc] initWithURL:[NSURL URLWithString:urlString]];
[self.player replaceCurrentItemWithPlayerItem:item];
[self playerPlay];
}
-(void)Stop{
[self playerPause];
}
@end