你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> ios中AVAudioPlayer音頻播放器

ios中AVAudioPlayer音頻播放器

編輯:IOS開發綜合


iOS多媒體播放音樂AVAudioPlayer和AVPlayer

1 iOS系統的音頻播放方式

AVAudioPlayer AVPlayer 系統聲音音頻排列

AVAudioPlayer

使用簡單方便,但只能播放本地音頻,不支持流媒體播放

AVPlayer

iOS4.0以後,可以使用AVPlayer播放本地音頻和支持流媒體播放,但是提供接口較少,處理音頻不夠靈活

音頻隊列

音頻隊列主要處理流媒體播放,提供了強大且靈活的API接口(C行數的接口),但是處理起來較為復雜。

2 AVAudioPlayer的使用

使用AVAudioPlayer和AVPlayer需要引用AVFoundation類庫

ViewController.h

#import

#import

@interface ViewController :UIViewController

{

AVAudioPlayer *audioplayer;

}

@end



ViewController.m

在.m文件中的loadview方法中添加以下方法

#import "ViewController.h"


@interfaceViewController ()

@end


@implementation ViewController

@synthesize label;

@synthesize textField;

- (void)viewDidLoad

{

[superview DidLoad];

//方法一:

//NSURL *url = [NSURL fileURLWithPath:[NSString

//stringWithFormat:@"%@/想你的夜.mp3", [[NSBundle mainBundle] resourcePath]]];

//方法二

NSBundle *bundle = [NSBundlemainBundle];

NSString *urlString = [bundlepathForResource:@"想你的夜" ofType:@"mp3"];

NSURL *url = [NSURLfileURLWithPath:urlString];

NSError *error;

audioplayer = [[AVAudioPlayeralloc]initWithContentsOfURL:urlerror:&error];

//音量的控制

audioplayer.volume=0.8;//0.0~1.0之間

//循環次數,只要將AVAudioPlayer的numberOfLoops屬性設為負數,音頻文件就會一直循環播放直到調用stop方法

audioplayer.numberOfLoops = 3;//默認只播放一次

//播放位置

audioplayer.currentTime = 15.0;//可以指定從任意位置開始播放

//聲道數

NSInteger channals = audioplayer.numberOfChannels;//只讀屬性

//持續時間

NSTimeInterval duration = audioplayer.duration;//獲取采取的持續時間

if (audioplayer==nil) {

NSLog([error description]);

}

else{

[audioplayer play];

}

}

@end

播放聲音

  1. [ player prepareToPlay];//分配播放所需的資源,並將其加入內部播放隊列
  2. [player play];//播放
  3. [player stop];/


    代理方法

    加入播放出現異常,或者被更高級別的系統任務打斷,我們的程序還沒來得及收場就掛了,怎麼辦?不急,我們可以通過幾個委托方法很好地處理所有的情形。

    首先給player設置委托是必須的:

    1. player.delegate = self;
      1. - (void)audioPlayerDidFinishPlaying:(AVAudioPlayer*)player successfully:(BOOL)flag{
      2. //播放結束時執行的動作
      3. }
      4. - (void)audioPlayerDecodeErrorDidOccur:(AVAudioPlayer*)player error:(NSError *)error{
      5. //解碼錯誤執行的動作
      6. }
      7. - (void)audioPlayerBeginInteruption:(AVAudioPlayer*)player{
      8. //處理中斷的代碼
      9. }
      10. - (void)audioPlayerEndInteruption:(AVAudioPlayer*)player{
      11. //處理中斷結束的代碼
      12. }
  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved