音效播放

一、前言

简单来说,音频可以分为两种:

  • 音效:又称“短音频”,通常在程序中的播放时长为1~2秒,在应用程序中起到点缀效果,提升用户体验。
  • 音乐:比如游戏中的背景音乐,一般播放时间较长。

播放音频需要用到的框架是AVFoundation.framework。

二、音效播放

  1. 引入头文件
    #import

  2. 播放音频

    // 创建播放soundID
    NSURL*url = [[NSBundlemainBundle] URLForResource:@"m_04.wav"withExtension:nil];
   SystemSoundID soundID;

    AudioServicesCreateSystemSoundID((__bridgeCFURLRef)(url), &soundID);

    self.soundID = soundID;

     // 播放音效
    AudioServicesPlaySystemSound(soundID);

3.停止音频

- (void)didReceiveMemoryWarning {
    AudioServicesDisposeSystemSoundID(self.soundID);
}

注意:

  • 该函数也可以播放音乐,但是不建议使用该方法播放音乐。
  • 不同格式的音频文件解码格式不一样,硬件解码耗电小,但是只能单线程;软件解码可以多线程,好点量大。开发中最好让平面设计提供硬件解码格式文件。
  • 音效文件只需加载一次

三、音频格式

音效播放_第1张图片

注意:硬件解码器一次只能对一个音频文件解码。在实际应用中通常使用非压缩的音频格式AIFF或者CAF音频格式从而减低系统在音频解码上的消耗达到省电的目的。

四、音频转换工具

  • 转换aiff格式
    afconvert -f AIFF -d I8 filename

  • 转换caf格式
    afconvert -f caff -d aac -b 32000 filename

  • 批量转换
    find . -name '*.mp3' -exec afconvert -f caff -d aac -b 32000 {} ;

你可能感兴趣的:(音效播放)