zoukankan      html  css  js  c++  java
  • 音频

    n音频
     
    n简介
    n简单来说,音频可以分为2种
    p音效
    ü又称“短音频”,通常在程序中的播放时长为1~2秒
    ü在应用程序中起到点缀效果,提升整体用户体验
    p音乐
    ü比如游戏中的“背景音乐”,一般播放时间较长
    ü
    n播放音频需要用到的框架
    pAVFoundation.framework
    n音效的播放

    // 1.获得音效文件的路径

    NSURL *url = [[NSBundle mainBundle] URLForResource:@"m_03.wav" withExtension:nil];

    // 2.加载音效文件,得到对应的音效ID

    SystemSoundID soundID = 0;

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

    // 3.播放音效

    AudioServicesPlaySystemSound(soundID);

    n音效文件只需要加载1次
    n音效的播放
    n音效播放常见函数总结
    p加载音效文件

    AudioServicesCreateSystemSoundID(CFURLRef inFileURL, SystemSoundID *outSystemSoundID)

    p释放音效资源

    AudioServicesDisposeSystemSoundID(SystemSoundID inSystemSoundID)

    p
    p播放音效

    AudioServicesPlaySystemSound(SystemSoundID inSystemSoundID)

    p播放音效带点震动

    AudioServicesPlayAlertSound(SystemSoundID inSystemSoundID)

    n音效格式
    n声音和音效小结——音频转换工具
    n转换aiff格式
    pafconvert -f AIFF -d I8 filename
    n转换caf格式
    pafconvert -f caff -d aac -b 32000 filename
    n批量转换
    pfind . -name '*.mp3' -exec afconvert -f caff -d aac -b 32000 {} ;
    n
    n
    n音乐的播放
    n音乐播放用到一个叫做AVAudioPlayer的类
    n
    nAVAudioPlayer常用方法
    p加载音乐文件
    ü- (id)initWithContentsOfURL:(NSURL *)url error:(NSError **)outError;
    ü- (id)initWithData:(NSData *)data error:(NSError **)outError;
    ü
    p准备播放(缓冲,提高播放的流畅性)
    ü- (BOOL)prepareToPlay;
    p播放(异步播放)
    ü- (BOOL)play;
    n音乐的播放
    p暂停
    ü- (void)pause;
    ü
    p停止
    ü- (void)stop;
    ü
    p是否正在播放
    ü@property(readonly, getter=isPlaying) BOOL playing;
    ü
    p时长
    ü@property(readonly) NSTimeInterval duration;
    ü
    p当前的播放位置
    ü@property NSTimeInterval currentTime;
    n音乐的播放
    p播放次数(-1代表无限循环播放,其他代表播放numberOfLoops+1次)
    ü@property NSInteger numberOfLoops;
    ü
    p音量
    ü@property float volume;
    p是否允许更改速率
    ü@property BOOL enableRate;
    ü
    p播放速率(1是正常速率,0.5是一般速率,2是双倍速率)
    ü@property float rate;
    p有多少个声道
    ü@property(readonly) NSUInteger numberOfChannels;
    ü
    n
  • 相关阅读:
    Zookeeper ZAB 协议分析
    Docker技术快速精通指南
    Oracle闪回技术详解
    怎样打造一个分布式数据库
    使用js冒泡实现点击空白处关闭弹窗
    也谈谈我对Docker的简单理解
    Docker技术快速精通指南
    Oracle优化网上常见的5个错误观点
    使用Spring AOP实现MySQL读写分离
    RESTEASY ,从学会使用到了解原理。
  • 原文地址:https://www.cnblogs.com/niexiaobo/p/4888731.html
Copyright © 2011-2022 走看看