96编辑器旗下产品
找图
终身
ID:0
到期时间:永久
退出登录
您的位置:首页 > 百科管理 > 详情

ios音效素材-iOS15白噪音功能:用iPhone提升专注、放松助眠

原创:找图网 2023-05-31 21:27:10
  • iOS开发中对音效和音乐播放的简单实现

  • 一、简单介绍

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

    (1)音效

    又称“短音频”,通常在程序中的播放时长为1~2秒

    在应用程序中起到点缀效果,提升整体用户体验

    (2)音乐

    比如游戏中的“背景音乐”,一般播放时间较长

    框架:播放音频需要用到框架

    二、音效的播放

    1.获得音效文件的路径

    复制代码 代码如下:

    NSURL *url = [[NSBundle mainBundle] URLForResource:@"m_" withExtension:nil];

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

    复制代码 代码如下:

    SystemSoundID soundID = 0;

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

    3.播放音效

    复制代码 代码如下:

    AudioServicesPlaySystemSound(soundID);

    注意:音效文件只需要加载1次

    4.音效播放常见函数总结

    加载音效文件

    复制代码 代码如下:

    AudioServicesCreateSystemSoundID(CFURLRef inFileURL, SystemSoundID *outSystemSoundID)

    释放音效资源

    复制代码 代码如下:

    AudioServicesDisposeSystemSoundID(SystemSoundID inSystemSoundID)

    播放音效

    复制代码 代码如下:

    AudioServicesPlaySystemSound(SystemSoundID inSystemSoundID)

    播放音效带点震动

    复制代码 代码如下:

    AudioServicesPlayAlertSound(SystemSoundID inSystemSoundID)

    三、程序示例

    先导入需要依赖的框架

    导入需要播放的音效文件素材

    说明:框架中的东西转换为CF需要使用桥接。

    代码示例:

    复制代码 代码如下:

    YYViewController.m文件

    //

    // YYViewController.m

    // 14-音效播放

    //

    // Created by apple on 14-8-8.

    // Copyright (c) 2014年 yangyong. All rights reserved.

    //

    #import "YYViewController.h"

    #import

    @interface YYViewController ()

    @end

    复制代码 代码如下:

    @implementation YYViewController

    - (void)viewDidLoad

    {

    [super viewDidLoad];

    }

    -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event

    {

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

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

    //2.加载音效文件,创建音效ID(SoundID,一个ID对应一个音效文件)

    SystemSoundID soundID=0;

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

    //把需要销毁的音效文件的ID传递给它既可销毁

    //AudioServicesDisposeSystemSoundID(soundID);

    //3.播放音效文件

    //下面的两个函数都可以用来播放音效文件,第一个函数伴随有震动效果

    AudioServicesPlayAlertSound(soundID);

    //AudioServicesPlaySystemSound(<#systemsoundid>)

    }

    @end

    说明:点击屏幕可以播放音效文件。

    音乐的播放

    一、简单说明

    音乐播放用到一个叫做AVAudioPlayer的`类,这个类可以用于播放手机本地的音乐文件。

    注意:

    (1)该类(AVAudioPlayer)只能用于播放本地音频。

    (2)时间比较短的(称之为音效)使用AudioServicesCreateSystemSoundID来创建,而本地时间较长(称之为音乐)使用AVAudioPlayer类。

    二、代码示例

    AVAudioPlayer类依赖于AVFoundation框架,因此使用该类必须先导入AVFoundation框架,并包含其头文件(包含主头文件即可)。

    导入必要的,需要播放的音频文件到项目中。

    代码示例:

    复制代码 代码如下:

    //

    // YYViewController.m

    // 15-播放音乐

    //

    #import "YYViewController.h"

    #import

    @interface YYViewController ()

    @end

    复制代码 代码如下:

    @implementation YYViewController

    - (void)viewDidLoad

    {

    [super viewDidLoad];

    }

    -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event

    {

    //1.音频文件的url路径

    NSURL *url=[[NSBundle mainBundle]URLForResource:@"3" withExtension:Nil];

    //2.创建播放器(注意:一个AVAudioPlayer只能播放一个url)

    AVAudioPlayer *audioPlayer=[[AVAudioPlayer alloc]initWithContentsOfURL:url error:Nil];

    //3.缓冲

    [audioPlayer prepareToPlay];

    //4.播放

    [audioPlayer play];

    }

    @end

    代码说明:运行程序,点击模拟器界面,却并没有能够播放音频文件,原因是代码中创建的AVAudioPlayer播放器是一个局部变量,应该调整为全局属性。

    可将代码调整如下,即可播放音频:

    复制代码 代码如下:

    #import "YYViewController.h"

    #import

    @interface YYViewController ()

    @property(nonatomic,strong)AVAudioPlayer *audioplayer;

    @end

    复制代码 代码如下:

    @implementation YYViewController

    - (void)viewDidLoad

    {

    [super viewDidLoad];

    }

    -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event

    {

    //1.音频文件的url路径

    NSURL *url=[[NSBundle mainBundle]URLForResource:@"3" withExtension:Nil];

    //2.创建播放器(注意:一个AVAudioPlayer只能播放一个url)

    =[[AVAudioPlayer alloc]initWithContentsOfURL:url error:Nil];

    //3.缓冲

    [ prepareToPlay];

    //4.播放

    [ play];

    }

    @end

    注意:一个AVAudioPlayer只能播放一个url,如果想要播放多个文件,那么就得创建多个播放器。

    三、相关说明

    新建一个项目,在storyboard中放三个按钮,分别用来控制音乐的播放、暂停和停止。

    程序代码如下:

    复制代码 代码如下:

    #import "YYViewController.h"

    #import

    @interface YYViewController ()

    @property(nonatomic,strong)AVAudioPlayer *player;

    - (IBAction)play;

    - (IBAction)pause;

    - (IBAction)stop;

    @end

    @implementation YYViewController

    - (void)viewDidLoad

    {

    [super viewDidLoad];

    //1.音频文件的url路径

    NSURL *url=[[NSBundle mainBundle]URLForResource:@"3" withExtension:Nil];

    //2.创建播放器(注意:一个AVAudioPlayer只能播放一个url)

    =[[AVAudioPlayer alloc]initWithContentsOfURL:url error:Nil];

    //3.缓冲

    [ prepareToPlay];

    }

    - (IBAction)play {

    //开始播放/继续播放

    [ play];

    }

    - (IBAction)pause {

    //暂停

    [ pause];

    }

    - (IBAction)stop {

    //停止

    //注意:如果点击了stop,那么一定要让播放器重新创建,否则会出现一些莫名其面的问题

    [ stop];

    }

    @end

    注意:如果点了“停止”,那么一定要播放器重新创建,不然的话会出现莫名其妙的问题。

    点击了stop之后,播放器实际上就不能再继续使用了,如果还继续使用,那么后续的一些东西会无法控制。

    推荐代码:

    复制代码 代码如下:

    #import "YYViewController.h"

    #import

    @interface YYViewController ()

    @property(nonatomic,strong)AVAudioPlayer *player;

    - (IBAction)play;

    - (IBAction)pause;

    - (IBAction)stop;

    @end

    复制代码 代码如下:

    @implementation YYViewController

    #pragma mark-懒加载

    -(AVAudioPlayer *)player

    {

    if (_player==Nil) {

    //1.音频文件的url路径

    NSURL *url=[[NSBundle mainBundle]URLForResource:@"3" withExtension:Nil];

    //2.创建播放器(注意:一个AVAudioPlayer只能播放一个url)

    =[[AVAudioPlayer alloc]initWithContentsOfURL:url error:Nil];

    //3.缓冲

    [ prepareToPlay];

    }

    return _player;

    }

    - (void)viewDidLoad

    {

    [super viewDidLoad];

    }

    - (IBAction)play {

    //开始播放/继续播放

    [ play];

    }

    - (IBAction)pause {

    //暂停

    [ pause];

    }

    - (IBAction)stop {

    //停止

    //注意:如果点击了stop,那么一定要让播放器重新创建,否则会出现一些莫名其面的问题

    [ stop];

    =Nil;

    }

    @end

    四、播放多个文件

    点击,url,按住common建查看。

    可以发现,这个url是只读的,因此只能通过initWithContentsOfUrl的方式进行设置,也就意味着一个播放器对象只能播放一个音频文件。

    那么如何实现播放多个音频文件呢?

    可以考虑封装一个播放音乐的工具类,下一篇文章将会介绍具体怎么实现。

  • iOS15白噪音功能:用iPhone提升专注、放松助眠

  • 苹果在iOS 15、iPadOS 15辅助功能,加入iPhone、iPad背景声音播放白噪音功能,这项背景声音功能主要是用来降低日常生活干扰,并且可以保持专注、平静、助眠和心灵放松。下面分享如何设置和播放白噪音。

    如何设定iOS 15白噪音教学

    想用iPad或iPhone内建系统播放白噪音,需要先升级到iOS 15 / iPadOS 15才能用背景声音新功能,目前是 iOS 15 Beta测试版,iOS 15正式版会在9月随iPhone发表会推出,建议可以先了解功能如何操作,后续会更快上手。

    最初先下载iPhone「白噪音」背景声音开启才能够使用,先打开「设定」>「辅助使用」>「音讯/视觉」并且选择「背景声音」。

    iPhone内建「背景声音」功能也就是「白噪音」功能,默认是关闭状态,打开后就会立即播放默认的下雨白噪音声音,底下还可以自定义调整音量和媒体播放时使用,先点击「声音」选项进入。

    在iOS 15白噪音里默认提供六种声音,分别是「平衡噪音、亮噪音、暗噪音、海洋、下雨、河流」,先替每个白噪音都点击一下才能够下载声音素材,否则会无法播放。

    快速开关iPhone播放白噪音教学

    下载好所有iOS 15背景声音的白噪音素材后,有的人会问,是不是每次都要到辅助设定内才能开关白噪音?其实不需要这么麻烦,只要到「设定」内选择「控制中心」,将「听力」控制项目打开即可。

    就可以下拉iPhone控制中心,直接点击「听力」功能(耳朵符号),最下方就会看见「背景声音」开关按钮,点击下去就会透过iPhone播放白噪音,如想关闭白噪音就再点一下即可关闭。

    当开启「背景声音」后,也可以切换其他白噪音或调整音量。

    可以透过列表选择切换不同的背景声音,不过目前默认白噪音仅只有这几种,没有像是HomePod白噪音丰富,预计在后续iOS 15正式版本会加入更多。

    白噪音有什么作用?

    第一次接触白噪音可能会不太懂这声音有什么用意,过去很多人都会透过音乐来帮助入睡,则有些人会以白噪音来提升睡意,为何白噪音可以帮助睡眠,以及白噪音副作用又会有哪些影响?

    白噪音就是大自然声音,主要是让频率保持一致,像是是火炉燃烧声、下雨声、海洋声、海浪声、森林自然声、夜间动物声等,声音听起来会让人感到舒服而愉悦,也能盖住周围突然产生的声音,像是隔壁在吵架、楼上在嗨歌、同房打呼声、外面狗叫声、车流声等,能避免容易被干扰舒眠和吵醒,让人可以更专心入睡。

    当然白噪音可以帮助睡眠品质不佳、提升专注、舒缓压力、安抚宝宝,能够让人的心灵转到外界,藉由自然声活化休息和反应副交感神经,来达到身心灵放松。

    至于白噪音有好处,相对也有副作用,主要是听太久可能会产生:

    本身有其他耳鸣疾病,使用白噪音会耽误耳鸣治疗时间

    小孩子不建议长期聆听白噪音,会造成听觉感官受到空间感摸索机会

    宝宝发育过程不宜长期使用白噪音,音量、距离和要设定自动关机时间

    目前iOS 15 白噪音仅只有海洋、下雨、河流声音,预计后续也会新增HomePod白噪音的素材,目前比较可惜是没办法通过时钟去控制白噪音暂停,所以还不适合边睡边听,目前比较适合可以在上班、下班或空挡时间,可以聆听白噪音来降低自己的心灵和提升专注力。

    以上就是iOS15白噪音功能:用iPhone提升专注、放松助眠,希望对你有所帮助,想了解更多Mac知识,请关注。

  • 苹果7p设置充电提示音

  • 最近,修改 iOS 充电提示音的话题突然在社交网络上火了起来。只需要通过简单的设置,你可以告别 iOS 那千篇一律的提示音,改成自己喜欢的音效。

    如果只是写一篇文章来介绍如何实现这一功能,那也太不够「少数派」了。本文就将从另一个角度出发,除了介绍此功能如何实现,还能「授人以渔」地让你知道如何扩展它的玩法。

    如何修改提示音

    其实,实现的原理是通过快捷指令的自动化功能,让设备在连接电源时播放一段音频,从而达到「替换」的效果。做法也非常简单,只要跟着下面的步骤来操作,完全称得上「包教包会」。

    第一步:准备一段音频

    既然要「替换」音频,我们首先就得准备一段音频。你可以直接在网上下载相关素材,也可以通过录屏截取等方式来录制自己喜欢的音频。如果是录屏截取的话,你还得准备一个能够将视频转换为音频的 app。

    我在这里用的是 易剪,它不但可以从视频提取音频,还可以显示波形图并进行剪辑,从而剪辑出更加完整清晰的素材。

    完成音频剪辑后,你需要将音频保存至「文件」app。我建议直接保存至 iCloud Drive 里的「Shortcuts」文件夹(也就是快捷指令 app 对应的文件夹),原因会在后文提及。

    建议保存至 iCloud Drive 的「Shortcuts」文件夹

    此时,你需要记住 app 将音频导出为何种格式。一般来说,导出的格式会是 m4a 或 mp3。如果你不确定的话,也可以在「文件」中长按并选择「简介」,随后即可看到包括后缀名在内的文件全称。

    要记清文件格式

    第二步:在快捷指令 app 中设置自动化

    保存好音频之后,只需要打开快捷指令app 并进行简单的设置即可。首先在「自动化」界面点击右上角的加号并选择「创建个人自动化」,进入「充电器」菜单并勾选「已连接」。然后,只需要添加两个动作就能实现音频「替换」。

    第一个动作是「获取文件」。此动作会默认勾选「显示文稿选择器」,我们需要手动关闭它,随后就会出现「文件路径」的输入框。由于系统限制,快捷指令只能自动获取 iCloud Drive/Shortcuts/ 路径下的文件,并且在输入文件名时,还需要加上后缀名。这也正是我在前面建议将音频保存至此,并且需要记住音频格式的原因。

    第二个动作则为「播放声音」,直接添加在「获取文件」后即可。

    在保存前的最后一步,你需要手动关闭「运行前询问」,只有这样,设备才能自动在接入电源时播放声音。

    完成这些设置以后再接上电源,设备的充电提示音就被「替换」掉了

    最新文章 更多
    最新素材 更多
    公司介绍 网站地图 图片资讯
    Copyright © 2010-2022 山东找图网络科技有限公司  鲁ICP备18007836号-3  邮箱:15653358549@163.com