• ios 短音效的使用


    1.通用短音效ID的获取
    #import <Foundation/Foundation.h>
    
    @interface MJAudioTool : NSObject
    
    /**
     *  播放音效
     *
     *  @param filename 音效文件名
     */
    + (void)playSound:(NSString *)filename;
    
    /**
     *  销毁音效
     *
     *  @param filename 音效文件名
     */
    + (void)disposeSound:(NSString *)filename;
    @end
    
    #import "MJAudioTool.h"
    #import <AVFoundation/AVFoundation.h>
    
    @implementation MJAudioTool
    
    // 字典: filename作为key, soundID作为value
    // 存放所有的音频ID
    static NSMutableDictionary *_soundIDDict;
    + (void)initialize
    {
        _soundIDDict = [NSMutableDictionary dictionary];
    }
    
    + (void)playSound:(NSString *)filename
    {
        if (!filename) return;
        
        // 1.从字典中取出soundID
        SystemSoundID soundID = [_soundIDDict[filename] unsignedLongValue];
        if (!soundID) { // 创建
            // 加载音效文件
            NSURL *url = [[NSBundle mainBundle] URLForResource:filename withExtension:nil];
            
            if (!url) return;
            
            // 创建音效ID
            AudioServicesCreateSystemSoundID((__bridge CFURLRef)url, &soundID);
            
            // 放入字典
            _soundIDDict[filename] = @(soundID);
        }
        
        // 2.播放
        AudioServicesPlaySystemSound(soundID);
    }
    
    + (void)disposeSound:(NSString *)filename
    {
        if (!filename) return;
        
        SystemSoundID soundID = [_soundIDDict[filename] unsignedLongValue];
        if (soundID) {
            // 销毁音效ID
            AudioServicesDisposeSystemSoundID(soundID);
            
            // 从字典中移除
            [_soundIDDict removeObjectForKey:filename];
        }
    }
    
    @end
    

     2.通用方法的使用

        [MJAudioTool playSound:@"buyao.wav"];

  • 相关阅读:
    【javascript】select操作实例
    【javascript】函数
    【javascript】一些资料
    【javascript】操作符:一元操作符
    动态执行Sql
    索引( index )
    事务
    用户相关
    视图(view)
    函数(function)
  • 原文地址:https://www.cnblogs.com/fuunnyy/p/5196679.html
Copyright © 2020-2023  润新知