今天复习了下导航器,把播放器美化了下
// ViewController.m
// 播放器
//
// Created by apple on 14-7-18.
// Copyright (c) 2014年 apple. All rights reserved.
//
#import "ViewController.h"
#import "AVFoundation/AVFoundation.h"
#import "SetViewController.h"
@interface ViewController ()<AVAudioPlayerDelegate>
{
AVAudioPlayer *player;//播放器
NSArray *_musiclist;//歌曲名列表
NSTimer *_timer;//定时器检查播放进度的动态送给进度tiao
int _index;//歌曲的多少;
UIImageView *imageView;
}
//播放进度的显示
@property IBOutlet UIButton *start;
@property IBOutlet UISlider *progressSlider;
@property IBOutlet UILabel *musicTitle;
@end
@implementation ViewController
//make backgrounder
- (void)backgrouder
{
imageView=[[UIImageView alloc]initWithFrame:CGRectMake(0, 20, 320, 480)];
imageView.image=[UIImage imageNamed:@"1.jpg"];
[self.view addSubview:imageView];
self.view.backgroundColor=[UIColor greenColor];
}
//make button and label
- (void)chuangJianBtnAndLabel
{
//start/shop
_start=[UIButton buttonWithType:UIButtonTypeCustom];
_start.frame=CGRectMake(110, 400, 100, 35);
//[_start setTitle:@"播放" forState:UIControlStateNormal];
[_start setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
[_start setImage:[UIImage imageNamed:@"03.jpg"] forState:UIControlStateNormal];
[_start addTarget:self action:@selector(kaiOrStop) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:_start];
//next music Btn
UIButton *nextBtn=[UIButton buttonWithType:UIButtonTypeCustom];
nextBtn.frame=CGRectMake(210, 400, 100, 35);
[nextBtn setImage:[UIImage imageNamed:@"02.jpg"] forState:UIControlStateNormal];
[nextBtn setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
[nextBtn addTarget:self action:@selector(next:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:nextBtn];
//before music btn
UIButton *beforeBtn=[UIButton buttonWithType:UIButtonTypeCustom];
beforeBtn.frame=CGRectMake(10, 400, 100, 35);
[beforeBtn setImage:[UIImage imageNamed:@"04.jpg"] forState:UIControlStateNormal]; [beforeBtn setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
[beforeBtn addTarget:self action:@selector(before:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:beforeBtn];
UIButton *setBtn=[UIButton buttonWithType:UIButtonTypeCustom];
setBtn.frame=CGRectMake(220, 20, 100, 30);
[setBtn setTitle:@"setUp" forState:UIControlStateNormal];
[setBtn setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
[setBtn addTarget:self action:@selector(setBtn:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:setBtn];
//[self buttonRect:CGRectMake(210, 300, 100, 30) Title:@"next" TitleColor:[UIColor redColor] Action:@selector(next:)];
//[self buttonRect:CGRectMake(0, 300, 100, 30) Title:@"before" TitleColor:[UIColor redColor] Action:@selector(before:)];
//labelChuangJian
UILabel *shengYinlabel=[[UILabel alloc]initWithFrame:CGRectMake(14, 350, 80, 30)];
shengYinlabel.text=@"声音";
shengYinlabel.textColor=[UIColor yellowColor];
[self.view addSubview:shengYinlabel];
UILabel *progresslabel=[[UILabel alloc]initWithFrame:CGRectMake(14, 310, 80, 30)];
progresslabel.text=@"进程";
progresslabel.textColor=[UIColor yellowColor];
[self.view addSubview:progresslabel];
_musicTitle=[[UILabel alloc]initWithFrame:CGRectMake(14, 140, 280, 60)];
_musicTitle.textColor=[UIColor greenColor];
_musicTitle.textAlignment=NSTextAlignmentCenter;
_musicTitle.text=[NSString stringWithFormat:@"%@",_musiclist[_index]];
[self.view addSubview:_musicTitle];
}
- (void)setBtn:(UIButton *)sender
{
SetViewController *setViewCter=[[SetViewController alloc]init];
setViewCter.view.backgroundColor=[UIColor blueColor];
[self.navigationController pushViewController:setViewCter animated:YES];
}
//下一首按钮
- (void)next:(UIButton *)sender
{
if (_index==_musiclist.count-1)
{
_index=0;
}
else
{
_index++;
}
[self play];
NSLog(@"下一首");
}
- (void)before:(UIButton *)sender
{
if (_index==0)
{
_index=_musiclist.count-1;
}
else
{
_index--;
}
[self play];
NSLog(@"上一首");
}
//创建UISlider
-(void)chuangJianSlider
{
UISlider *shengYinSlider=[[UISlider alloc]initWithFrame:CGRectMake(50, 360, 250, 10)];
shengYinSlider.value=0.3;
shengYinSlider.tintColor=[UIColor blueColor];
shengYinSlider.maximumValue=1;
shengYinSlider.minimumValue=0;
[shengYinSlider addTarget:self action:@selector(shengYin:) forControlEvents:UIControlEventValueChanged];
[self.view addSubview:shengYinSlider];
_progressSlider=[[UISlider alloc]initWithFrame:CGRectMake(50, 320, 250, 10)];
// _progressSlider.value=0.5;
_progressSlider.tintColor=[UIColor blueColor];
_progressSlider.maximumValue=1;
_progressSlider.minimumValue=0;
[_progressSlider addTarget:self action:@selector(progressSlider:) forControlEvents:UIControlEventValueChanged];
[self.view addSubview:_progressSlider];
}
//声音slider的动作方法
-(void)shengYin:(UISlider *)sender
{
player.volume=sender.value;
NSLog(@"%f",sender.value);
}
//播放进度调节显示
- (void)progressSlider:(UISlider *)sender
{
player.currentTime=sender.value*player.duration;
}
//播放完成代理
- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag
{
_index++;
if (_index==_musiclist.count) {
_index=0;
}
[self play];
}
//开始停止按钮
- (void)kaiOrStop
{
if(player.playing)
{
[_start setImage:[UIImage imageNamed:@"03.jpg"] forState:UIControlStateNormal];
[player stop];
}
else
{
[_start setImage:[UIImage imageNamed:@"05.jpg"] forState:UIControlStateNormal];
[player play];
}
NSLog(@"kaiShiTingZhi");
}
//开始播放设置(shunXuPlay)
- (void)play
{
NSString *name=_musiclist[_index];
//显示不同的图片
NSString *imageName=[NSString stringWithFormat:@"%d.jpg",_index+1];
imageView.image=[UIImage imageNamed:imageName];
//show music title
_musicTitle.text=[NSString stringWithFormat:@"%@",_musiclist[_index]];
NSString *path=[[NSBundle mainBundle] pathForResource:name ofType:@"mp3"];
// NSData *avData=[NSData dataWithContentsOfFile:path];
// player=[[AVAudioPlayer alloc]initWithData:avData error:nil];
//生成一个urld的对象
NSURL *url=[NSURL fileURLWithPath:path];
NSData *data=[NSData dataWithContentsOfURL:url];
//把本地文件给播放器
player=[[AVAudioPlayer alloc]initWithData:data error:nil];
player.delegate=self;
//改变速率
//player.enableRate=YES;
player.rate=4;
//设置开始的时间
player.currentTime=0;
player.volume=0.5;
[player prepareToPlay];
//开始播放
[player play];
//定时器来调用progress方法
_timer=[NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(progress:) userInfo:nil repeats:YES];
}
//改变进度条
- (void)progress:(UISlider *)sender
{
self.progressSlider.value=player.currentTime/player.duration;
}
- (void)viewDidLoad {
[super viewDidLoad];
[self backgrouder];
[self chuangJianBtnAndLabel];
[self chuangJianSlider];
_musiclist=@[@"Beyond-光辉岁月",@"G.E.M.邓紫棋-你把我灌醉",@"G.E.M.邓紫棋-回忆的沙漏 (国)",@"Beyond-海阔天空",@"Declan Galbraith-Tell Me Why"];
[self play];
[player stop];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end