iOS中的音頻播放

//////////AVAudioPlayer////////////

#import <AVFoundation/AVFoundation.h>

#import "ViewController.h"


@interface ViewController ()

{

    AVAudioPlayer *audioPlayer;

}


@property (weak, nonatomic) IBOutlet UISlider *volumeSlider;

@property (weak, nonatomic) IBOutlet UISlider *currentSlider;

@property (weak, nonatomic) IBOutlet UILabel *timeLabel;


- (IBAction)volumeSlider:(UISlider *)sender;

- (IBAction)currentSlider:(UISlider *)sender;


@end


@implementation ViewController


- (void)viewDidLoad {

    [super viewDidLoad];

    //找到本地音頻文件

    NSString *filePath = [[NSBundle mainBundle] pathForResource:@"天涯—張利鵬" ofType:@"mp3"];

    

    //包裝成url,調用本地文件使用fileURLWithPath方法 遠程文件調用使用URLWithString

    NSURL *url = [NSURL fileURLWithPath:filePath];

    

    audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:NULL];

    

    

    //準備播放 也可以不寫

    [audioPlayer prepareToPlay];

    

    //遇到play就播放

//    if ([audioPlayer play]) {

//        NSLog(@"開始播放音樂了");

//    }

    //設置滑塊的區間範圍

    _volumeSlider.minimumValue = 0;

    _volumeSlider.maximumValue = 1;

    

    _currentSlider.minimumValue = 0;

    _currentSlider.maximumValue = audioPlayer.duration//總時長

    

    [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timerAction:) userInfo:nil repeats:YES];

}


- (void)timerAction:(NSTimer *)timer {

    

    if (audioPlayer.playing) {

        NSString *currentTime = [NSString stringWithFormat:@"%.0f",audioPlayer.currentTime];

        _timeLabel.text = currentTime;

        

        _currentSlider.value = audioPlayer.currentTime;

    }

    

}


- (IBAction)currentSlider:(UISlider *)sender {

    //設置當前的播放進度時間

    audioPlayer.currentTime = sender.value;

}


- (IBAction)volumeSlider:(UISlider *)sender {

    

    //設置當前的播放進度時間

    audioPlayer.currentTime = sender.value;

}


- (IBAction)playAction:(UIButton *)sender {

    //播放器是否正在播放

    BOOL playing = audioPlayer.playing;

    if (playing) { //正在播放

        //暫停

        [audioPlayer pause];

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

    } else {

        [audioPlayer play];

        [sender setTitle:@"暫停" forState:UIControlStateNormal];

    }

}

@end



//////////AVPlayer//////////// 

修改- (void)viewDidLoad代碼如下

- (void)viewDidLoad

{

    [super viewDidLoad];

    

    NSError *error;

    //設置音頻會話支持後臺播放

    [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:&error];

    

    //播放遠程地址

    NSString *mp3Url = @"http://mp3a.9ku.com:1234/qzonemp3/chenchusheng001.mp3";

    NSURL *url = [NSURL URLWithString:mp3Url];

    

    player = [[AVPlayer alloc] initWithURL:url];

    [player play];//獲取流媒體數據播放  

}

運行


//播放遠程地址

NSString *mp3Url = @"http://music.baidutt.com/up/kwcawcca/ydsspc.mp3";

NSURL *url = [NSURL URLWithString:mp3Url];


player = [[AVPlayer alloc] initWithURL:url];

[player play];//獲取流媒體數據播放


註釋掉 在其下加入

//播放本地文件

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"第一夫人" ofType:@"mp3"];

NSURL *url = [NSURL fileURLWithPath:filePath];

player = [[AVPlayer alloc] initWithURL:url];

[player play];


運行





//////////AudioToolbox.framework////////////


//先導入AudioToolbox.framework框架

- (IBAction)playAction:(UIButton *)sender{

    NSString *filePath = [[NSBundle mainBundle] pathForResource:@"44th Street Medium" ofType:@"caf"];

    NSURL *url = [NSURL fileURLWithPath:filePath];

    

    //unsigned long soundId;

    SystemSoundID  soundId;

    

    //url地址註冊系統聲音

    AudioServicesCreateSystemSoundID((__bridge CFURLRef)url, &soundId);

    

    //播放系統聲音

    AudioServicesPlaySystemSound(soundId);

      

   ***********播放震動  (模擬器無法模擬震動)*************

    AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);


    

}







發佈了91 篇原創文章 · 獲贊 5 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章