日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

iOS之播放音效(AVFoundation)

發(fā)布時間:2024/10/12 编程问答 60 豆豆
生活随笔 收集整理的這篇文章主要介紹了 iOS之播放音效(AVFoundation) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
前提需要導入<AVFoundation/AVFoundation.h>框架 #import "ViewController.h" #import <AVFoundation/AVFoundation.h> #import "CXDAudioTool.h" //自定義播放工具類,根據(jù)傳入音頻文件名,設置聲音@interface ViewController ()@property (nonatomic, assign) SystemSoundID soundID;/** 存放音效文件 */ @property (nonatomic, strong) NSMutableDictionary *soundIDs;@end@implementation ViewController- (void)viewDidLoad {[super viewDidLoad]; }- (IBAction)buyao {[CXDAudioTool playSoundWithSoundname:@"buyao.wav"]; }- (IBAction)bigWang:(id)sender {[CXDAudioTool playSoundWithSoundname:@"m_17.wav"]; }- (IBAction)smallWang:(id)sender {[CXDAudioTool playSoundWithSoundname:@"m_16.wav"]; }#pragma mark - 點擊屏幕背景音效 - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {AudioServicesPlayAlertSound(self.soundID); }///懶加載 - (SystemSoundID)soundID {if (_soundID == 0) {// 根據(jù)音效文件,來生成SystemSoundIDNSURL *url = [[NSBundle mainBundle] URLForResource:@"win.aac" withExtension:nil];CFURLRef urlRef = (__bridge CFURLRef)(url);AudioServicesCreateSystemSoundID(urlRef, &_soundID);}return _soundID; }///懶加載 - (NSMutableDictionary *)soundIDs {if (_soundIDs == nil) {_soundIDs = [NSMutableDictionary dictionary];}return _soundIDs; }@end

以下是自定義工具類?CXDAudioTool

#import <Foundation/Foundation.h>@interface CXDAudioTool : NSObject+ (void)playSoundWithSoundname:(NSString *)soundname;@end #import "CXDAudioTool.h" #import <AVFoundation/AVFoundation.h>@implementation CXDAudioToolstatic NSMutableDictionary *_soundIDs;+ (void)initialize {_soundIDs = [NSMutableDictionary dictionary]; }+ (void)playSoundWithSoundname:(NSString *)soundname {// 1.定義SystemSoundIDSystemSoundID soundID = 0;// 2.從字典中取出對應soundID,如果取出是nil,表示之前沒有存放在字典soundID = [_soundIDs[soundname] unsignedIntValue];if (soundID == 0) {CFURLRef url = (__bridge CFURLRef)[[NSBundle mainBundle] URLForResource:soundname withExtension:nil];AudioServicesCreateSystemSoundID(url, &soundID);// 將soundID存入字典 [_soundIDs setObject:@(soundID) forKey:soundname];}// 3.播放音效 AudioServicesPlaySystemSound(soundID); }@end

ps:文件需要自己導入

轉(zhuǎn)載于:https://www.cnblogs.com/chixuedong/p/5370070.html

總結(jié)

以上是生活随笔為你收集整理的iOS之播放音效(AVFoundation)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。