最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

iOS開發(fā)實現(xiàn)音頻播放功能

 更新時間:2016年03月16日 10:05:06   投稿:hebedich  
本文給大家分享的是在IOS開發(fā)過程中實現(xiàn)音頻播放的功能,講解的十分細致,有需要的小伙伴可以參考下

音頻播放

1、介紹

 - 功能介紹

 用于播放比較長的音頻、說明、音樂 ,使用到的是AVFoundation

 - 框架介紹

 * AVAudioPlayer

 * 初始化:

 注意 :

(3)必須聲明全局變量的音樂播放對象、或者是屬性的音樂播放對象  才可以播放

(4)在退出播放頁面的時候 一定要把播放對象置空  同時把delegate置空

導入框架:#import <AVFoundation/AVFoundation.h>

聲明全局變量

@interface ViewController ()<AVAudioPlayerDelegate>

{

  AVAudioPlayer *audioPlayer;

}

@end

音頻的基本屬性

預播放 [audioPlayer prepareToPlay];

獲取  當前音樂的聲道 audioPlayer.numberOfChannels

audioPlayer.currentTime //當前播放的時間 

audioPlayer.playing//判斷是否正在播放 

audioPlayer.numberOfLoops ;//設置循環(huán)播放的此次     

audioPlayer.duration  獲得播放音頻的時間

audioPlayer.pan  設置左右聲道效果

audioPlayer.volume 設置音量 0.0- 1.0  是一個百分比   

//設置速率 必須設置enableRate 為YES;     audioPlayer.enableRate =YES;     audioPlayer.rate =3.0;

音量 audioPlayer.volume = 0.1;

設置播放次數(shù) 負數(shù)是無限循環(huán)的 0 是一次 1是兩次 依次類推 audioPlayer.numberOfLoops = 0;

獲得當前峰值 audioPlayer peakPowerForChannel:2

平均峰值
audioPlayer averagePowerForChannel:2
音頻播放的幾個代理方法


//播放完成的時候調用
- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag{
    NSLog(@"播放完成");
}
//解碼出現(xiàn)錯誤的時候調用
- (void)audioPlayerDecodeErrorDidOccur:(AVAudioPlayer *)player error:(NSError * __nullable)error{

}
//開始被打擾中斷的時候調用
- (void)audioPlayerBeginInterruption:(AVAudioPlayer *)player{
   
}
//中斷結束后調用
- (void)audioPlayerEndInterruption:(AVAudioPlayer *)player withOptions:(NSUInteger)flags{
   
}

  實例解析音頻播放

初始化一個按鈕

在ViewDidLoad中

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
  button.frame = CGRectMake(100, 100, 100, 100);
  button.backgroundColor = [UIColor brownColor];
  [button setTitle:@"Play" forState:UIControlStateNormal];
  [button setTitle:@"Pause" forState:UIControlStateSelected];
  [button addTarget:self action:@selector(play:) forControlEvents:UIControlEventTouchUpInside];
  [self.view addSubview:button];

   [self playMusicWithName:@"TFBOYS-青春修煉手冊.mp3"];

按鈕的觸發(fā)方法:

- (void)play:(UIButton *)sender{
  sender.selected = !sender.selected;
  sender.selected != YES ? [audioPlayer pause]:[audioPlayer play];
}

- (void)playMusicWithName:(NSString *)name{
  NSError *error;
  
//  創(chuàng)建一個音樂播放對象
  audioPlayer = [[AVAudioPlayer alloc]initWithContentsOfURL:[[NSBundle mainBundle]URLForResource:name withExtension:nil] error:&error];
  if (error) {
    NSLog(@"%@",error);
  }
 
  預播放
  [audioPlayer prepareToPlay];
  
  播放 在這里不寫在這 但它是必須的步驟
  [audioPlayer play];
  
  獲取 當前音樂的聲道
  NSLog(@"%ld",audioPlayer.numberOfChannels);
  
  durtion:獲得播放音頻的時間
  
  設置聲道 -1.0左 0.0中間 1.0右
  audioPlayer.pan = 0.0;
  

  音量
  audioPlayer.volume = 0.1;
  
  設置速率 必須設置enableRate為YES
  audioPlayer.enableRate = YES;
  設置速率 0.5是一半的速度 1.0普通 2.0雙倍速率
  audioPlayer.rate = 1.0;
  
  currentTime 獲得時間
  獲得峰值 必須設置meteringEnabled為YES
  audioPlayer.meteringEnabled = YES;
  更新峰值
  [audioPlayer updateMeters];  
  獲得當前峰值
  NSLog(@"當前峰值:%f",[audioPlayer peakPowerForChannel:2]);
  NSLog(@"平均峰值%f",[audioPlayer averagePowerForChannel:2]);
  
  設置播放次數(shù) 負數(shù)是無限循環(huán)的 0 是一次 1是兩次 依次類推
  audioPlayer.numberOfLoops = 0;
  掛上代理
  audioPlayer.delegate = self;
  
}


相關文章

  • 解決ios微信下vue項目組件切換并自動播放音頻問題

    解決ios微信下vue項目組件切換并自動播放音頻問題

    最近在做一個英語答題項目,項目需求是通過答題取的成績 , 答題的題型是分為,聽音選圖,看圖選詞和填空題.下面小編給大家?guī)砹薸os微信下vue項目組件切換并自動播放音頻的解決方案,需要的朋友參考下吧
    2018-01-01
  • 深入分析iOS應用中對于圖片緩存的管理和使用

    深入分析iOS應用中對于圖片緩存的管理和使用

    這篇文章主要介紹了iOS應用中對于圖片緩存的管理和使用,實例代碼為傳統(tǒng)的Objective-C,需要的朋友可以參考下
    2016-04-04
  • iOS UIPickerView的簡單封裝示例

    iOS UIPickerView的簡單封裝示例

    這篇文章主要給大家介紹了關于iOS UIPickerView的簡單封裝的相關資料,文中通過示例代碼介紹的非常詳細,對各位iOS開發(fā)者們具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-06-06
  • iOS開發(fā)之UIMenuController使用示例詳解

    iOS開發(fā)之UIMenuController使用示例詳解

    這篇文章主要為大家介紹了iOS開發(fā)之UIMenuController使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07
  • iOS關鍵字static extern const使用示例詳解

    iOS關鍵字static extern const使用示例詳解

    這篇文章主要為大家介紹了iOS關鍵字static extern const使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-11-11
  • iOS開發(fā)中指紋識別簡單介紹

    iOS開發(fā)中指紋識別簡單介紹

    指紋識別是在iOS8.0以后才推出的,所以我們如果想把指紋集成到我們的APP當中,我們首先就要在代碼中判斷iOS版本。接下來通過本文給大家分享iOS開發(fā)中指紋識別簡單介紹,需要的朋友參考下吧
    2017-11-11
  • swift MD5加密源碼的實例詳解

    swift MD5加密源碼的實例詳解

    這篇文章主要介紹了swift MD5加密源碼的實例詳解的相關資料,希望通過本文能幫助到大家實現(xiàn)MD5加密,需要的朋友可以參考下
    2017-09-09
  • iOS自定義轉場動畫的幾種情況

    iOS自定義轉場動畫的幾種情況

    這篇文章主要給大家介紹了關于iOS自定義轉場動畫的幾種情況,文中通過示例代碼介紹的非常詳細,對各位iOS開發(fā)者們具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-06-06
  • Flutter列表滾動定位超強輔助庫使用示例詳解

    Flutter列表滾動定位超強輔助庫使用示例詳解

    這篇文章主要為大家介紹了Flutter列表滾動定位超強輔助庫使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • iOS畫出精美的圖表方法示例

    iOS畫出精美的圖表方法示例

    這篇文章主要給大家介紹了關于iOS如何畫出精美的圖表的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-08-08

最新評論

华安县| 巍山| 维西| 曲沃县| 桃源县| 曲松县| 东台市| 三门县| 龙井市| 伊川县| 奉贤区| 隆尧县| 靖边县| 新河县| 青神县| 日照市| 博爱县| 灯塔市| 天祝| 峨山| 尖扎县| 德昌县| 奉化市| 乐都县| 明水县| 安平县| 泸西县| 柘城县| 常熟市| 玉门市| 台州市| 临城县| 上思县| 浑源县| 恩平市| 湟中县| 镇安县| 望江县| 射洪县| 屯门区| 河北区|