1.这是播放效果,可以按下play和pause播放和暂停,进度条自动改变进度
,我用的是mac mini产生很多错误,没有声音,换个耳机就可以了!!
滑动条拖动的时候,音乐播放改变会有噪音,解决方法如下
不要勾这个就行
2.改变声音的方法,设置当前音量和最小音量0-1的数值
以下实现音乐播放的代码:
//
// ViewController.m
// 01-AVAudiioPlayer
//
// Created by 鹿微微鹿. on 16/5/6.
// Copyright (c) 2016年 鹿微微鹿. All rights reserved.
//
//AVAudioPlayer:专门用来播放音频的工具
//1.导入import <AVFoundation/AVFoundation.h>
//2.声明一个音频全局变量AVAudioPlayer *_player
#import "ViewController.h"
#import <AVFoundation/AVFoundation.h>
@interface ViewController ()<AVAudioPlayerDelegate>
{
//声明一个音频播放器对象
AVAudioPlayer *_player;
}
@property (weak, nonatomic) IBOutlet UISlider *progressSlider;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
//定时器
[NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(updateSlider) userInfo:nil repeats:YES];
[self preparePlay];
}
//更新进度
- (void)updateSlider{
//获取当前进入
//当前进度就是当前播放的时刻/总的时间
self.progressSlider.value = _player.currentTime/_player.duration;
}
#pragma mark - 按钮点击
- (IBAction)play:(id)sender {
//播放
[_player play];
}
- (IBAction)pause:(id)sender {
//暂停
[_player pause];
}
- (IBAction)sliderChangeValue:(UISlider *)sender {
//改变播放进度
//获取当前音乐的总时间
CGFloat duration = _player.duration ;
//设置当前的播放进度
_player.currentTime = duration * sender.value;
}
- (IBAction)stpperChangeValue:(UIStepper *)sender {
// NSLog(@"%lf",sender.value);
_player.volume = sender.value;
}
#pragma mark -音乐播放完毕的时候
//一个音频播放结束的时候调用这个方法
- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag{
NSLog(@"播放结束");
}
//打断的时候会调用这个方法
- (void)audioPlayerBeginInterruption:(AVAudioPlayer *)player{
[player pause];
}
//打断结束的时候调用该方法
- (void)audioPlayerEndInterruption:(AVAudioPlayer *)player withOptions:(NSUInteger)flags{
//一般在这个方法中继续播放
[_player play];
}
#pragma mark - 准备音频播放器
- (void)preparePlay{
NSString *path = [[NSBundle mainBundle]pathForResource:@"亡灵序曲.mp3" ofType:nil];
//1.实例化音频播放器(既可以播放网上的也可以播放本地的)
_player = [[AVAudioPlayer alloc]initWithContentsOfURL:[NSURL fileURLWithPath:path] error:nil];
//2.准备播放
[_player prepareToPlay];
//3.开始播放
[_player play];
//设置代理
_player.delegate =self;
NSLog(@"1");
}
@end