900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > iOS开发:音乐播放器

iOS开发:音乐播放器

时间:2023-06-12 09:55:36

相关推荐

iOS开发:音乐播放器

/****************** iOS开发:音乐播放器 *****************/

要求:给button一个触发事件,点击一下播放歌曲,显示暂停提示;

再点击一下暂停歌曲,显示播放字体;

封装一个music类:

(1).引入AVFoundation框架

#import<AVFoundation/AVFoundation.h>

(2).创建播放歌曲的类的对象以及方法:

@property(nonatomic, strong)AVPlayer *player;

@property(nonatomic, retain)NSString *currentURL; //url:网络接口

@property(nonatomic,assign)NSInteger flag; //标签

//单例,只有这个工程关闭时,才退出歌曲播放

+ (Music *)shareInstance;

//播放歌曲,传进来一个URL

- (void)playMusicWith:(NSString *)urlString;

//暂停歌曲

- (void)pauseMusic;

(3).实现方法:

+ (Music *)shareInstance{

//只走一次

static dispatch_once_t onceToken;

dispatch_once(&onceToken, ^{

music = [[Music alloc]init];

});

return music;

}

- (void)playMusicWith:(NSString *)urlString{

if ([_currentURL isEqualToString:urlString]) {

//通过flag触发播放还是暂停:

if (_flag == 1) {

[_player play];

_flag = 0;

}else{

[_player pause];

_flag = 1;

}else{ //换歌

//记录当前歌曲URL

_currentURL = urlString;

//先暂停前一首歌

[_player pause];

//得到新的URL

_player = [[AVPlayer alloc]initWithURL:[NSURL URLWithString:urlString]];

//播放新歌

[_player play];

}

}

(4).在viewController中,

假设给button一个触发事件,用来控制播放、暂停歌曲

- (void)buttonAction{

//用tag值来改变setTitle (初始时刻button = 1000)

if (_button.tag == 1000) {

NSString *urlString = @"/group14/M08/70/3F/wKgDZFX1m2_zB1prACBgVqJhyOA138.mp3";

[[Music shareInstance] playMusicWith:urlString];

[_button setTitle:@"暂停" forState: UIControlStateNormal];

_button.tag = 1001;

}else{

NSString *urlString = @"/group14/M08/70/3F/wKgDZFX1m2_zB1prACBgVqJhyOA138.mp3";

[[Music shareInstance] playMusicWith:urlString];

[_button setTitle:@"播放" forState:UIControlStateNormal];

_button.tag = 1000;

}

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。