1.這是播放效果,能夠按下play和pause播放和暫停,進度條自動改變進度ide
,我用的是mac mini產生不少錯誤,沒有聲音,換個耳機就能夠了!!工具
滑動條拖動的時候,音樂播放改變會有噪音,解決方法以下atom
不要勾這個就行spa
2.改變聲音的方法,設置當前音量和最小音量0-1的數值.net
如下實現音樂播放的代碼:3d
//代理
// ViewController.morm
// 01-AVAudiioPlayer對象
//get
// 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;
@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