您的位置:首页 > 移动开发 > IOS开发

ios 简单的音乐播放器,单机

2015-08-19 08:51 543 查看
//导入音视频框架
#import <AVFoundation/AVFoundation.h>
@interface RootViewController : UIViewController
//声明 音频播放对象 属性
@property (nonatomic, retain) AVAudioPlayer * player;
- (AVAudioPlayer *)player
{
if (!_player)
{
//获得歌曲路径
NSURL * url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:[self.musicArray objectAtIndex:self.currentPlayIndex] ofType:nil]];
//根据歌曲路径初始化播放器
self.player = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:nil];

//播放器是否允许改变播放速度
self.player.enableRate = YES;
}
return [[_player retain] autorelease];
}

- (void)voiceChange:(UISlider *)sender
{
//改变播放器的声音
self.player.volume = sender.value;
}

- (void)speedChange:(UISlider *)sender
{
//改变播放器的速度
self.player.rate = sender.value;
}

- (void)channelChange:(UISlider *)sender
{
//改变播放器的声道
self.player.pan = sender.value;
}
下一首按钮的方法
- (void)lastButtonClick:(UIButton *)sender
{
if (self.currentPlayIndex > 0) {
self.currentPlayIndex--;
[self.player stop];
self.player = nil;

[self playButtonClick:self.controlView.playButton];
}
}

//正在播就停止并换图标,没在博就play,换图标并调用放阿飞refreshDisplay:
- (void)playButtonClick:(UIButton *)sender
{
if ([self.player isPlaying]) {
[self.player pause];
[sender setImage:[UIImage imageNamed:@"play.png"] forState:UIControlStateNormal];
}else
{
[self.player play];
[sender setImage:[UIImage imageNamed:@"pause.png"] forState:UIControlStateNormal];

self.timer = [NSTimer scheduledTimerWithTimeInterval:.1
target:self
selector:@selector(refreshDisplay:)
userInfo:nil
repeats:YES];
}
}
- (void)nextButtonClick:(UIButton *)sender
{
if (self.currentPlayIndex < self.musicArray.count - 1) {
self.currentPlayIndex++;
[self.player stop];
self.player = nil;

[self playButtonClick:self.controlView.playButton];
}
}

- (void)progessChange:(UISlider *)sender
{
//当人为滑动进度条时, 根据进度条的值改变播放器当前的进度
self.player.currentTime = sender.value;
NSLog(@"%f", sender.value);
}

- (void)refreshDisplay:(NSTimer *)sender
{
self.displayView.progressSlider.value = self.player.currentTime;
// 将时间转换为分禾苗
int currentMinute = (int)self.player.currentTime / 60;
int currentSecond = (int)self.player.currentTime % 60;
self.displayView.currentTimeLabel.text = [NSString stringWithFormat:@"0%d:%d", currentMinute, currentSecond];

int surplusMinute = (int)(self.player.duration - self.player.currentTime) / 60;
int surplusSecond = (int)(self.player.duration - self.player.currentTime) % 60;
self.displayView.continueTimeLabel.text = [NSString stringWithFormat:@"0%d:%d", surplusMinute, surplusSecond];
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: