QQ音乐银河音效技术实践——音乐重放效果的补偿与修饰

news2024/11/24 12:00:10

音效渲染是音频或音乐播放器最为重要的后处理模块之一。LiveVideoStackCon 2022 北京站邀请到腾讯音乐银河音效开发负责人——闫震海,为大家介绍银河音效在QQ音乐播放器中的创新应用,包括空间环绕效果和音效制作工具等内容。

文/闫震海

编辑/LiveVideoStack 

大家好!很高兴和大家一起分享交流关于QQ音乐银河音效的一些技术实践。

相信大家对音效处理都不陌生。它已经被广泛应用在各种音频信号、音乐信号的渲染场景中。本次分享重点是音乐重放场景,如何利用音效对最终听到的感觉进行补偿和修饰。

主要包括以下四方面:

1、音效在播放器中的应用:关于音效的简单介绍,以及在QQ音乐播放器中的落地应用;

2、空间环绕效果的设计:空间环绕效果一直是用户热捧的一种听音偏好。我将以空间环绕效果为例,分享设计思路;

3、音效制作工具的设计:除了官方设计好的有限数量的效果之外,我们还有一大批高阶用户。他们有很强烈的欲望来自己制作音效。因此,我们设计开放了一系列的音效制作工具供给用户使用;

4、银河音效的未来展望。

-01-

音效在播放器中的应用

45ff15830a1d56e9cc3fe2e7f8c7c499.png

“音效”在维基百科中有一个描述性的定义。我们可以从中拆分出两个关键词。一个是声音,也就是说,音效是一种声音。如下方左图,工作人员在为电影画面做拟音,在录音棚里模拟电影人物产生的各种声音。还有听书场景,当说到恐怖情节时,会配上恐怖音效烘托气氛。其实这类音效更准确的名称应该叫声音效果,强调的是声音属性。为了营造不同的听音环境,我们也会尝试把溪流声、海浪声、风声等音效片段混入到音乐中;另一个关键词是声音处理,也是银河音效更加关注的一个点。它是指利用均衡器、混响器、压缩器等音效处理手段,实现同一个音乐的不同重放效果。这类技术可以被统称为数字音效技术。

dee38f77691c8be6a02cbd8f64df6442.png

音效的源头可以追溯到模拟时代的音乐混音。在音乐的录制和混音阶段,音乐制作人追求的不仅仅是真实还原现场音乐,还十分在乎音乐所营造的情绪效果。就像拍照一样,人们会通过添加滤镜的方式,改变照片风格。音效处理也起着类似的作用。经典的音效处理手段主要是镶边、合唱、变调、相位器等。

以镶边为例,介绍一下音乐制作人在模拟时代是如何玩出音效花样的。镶边最早出现在披头士的音乐中。录音带在播放时都有一个圆盘叫flange。使用两台设备同时播放同一首歌。然后手动波动其中一个圆盘。这台设备的播放就会出现一种顺滑的延迟效果。再与另一台设备的原始信号叠加在一起,就形成了镶边音效。大家可以听一下处理前后的音频,感受两者区别。

处理前/处理后

在后续的发展中,音效也逐步由录音端向下游扩展,来到了播放端。比如在音乐播放器中,对解码后的PCM数据做处理。还有在音响或耳机等硬件终端设备上做音效处理。

11fdde68feb339dfa459280c8d3a2483.png

QQ音乐集成的银河音效更加侧重于音乐重放场景。在这种场景中,音效的目的可分为两种。一种是为了补偿播放设备的缺陷。重放环境或者电声器件的先天不足,使得用户听到的声音信号并不是音乐人想要表达的效果。比如,扬声器的平坦度较差、立体声效果不明显、低频重放能力不足等等。

上方左图,(红线)不平整的扬声器频响会对音乐产生严重声染色。可以通过均衡处理获得(蓝线)更加平整的频响曲线,从而抑制声染色的问题。对于设备本身低频表现能力不足的情况,也可以利用心理声学中“消失的基频”这个物理现象,引入虚拟低音来增强人耳对低频的感知。

2d2c931dbd00df6e031ccd244b6709c8.png

另一个目的则是更为常见的,即基于修饰目的的音效设计。不同用户的听感偏好不同。我们通过增加或增强某些成分,达到环绕感、重低音、人声等听感层面的效果增强。为了增强重放效果的差异性,常见的音效手段包括:扩展环绕、抬升低音、增强人声、制作人工混响等。

QQ音乐的很多官方音效也是基于这一目的设计的。此外还有一些增加音乐节奏感的增强效果设计,称为“超嗨DJ”。欢迎大家亲自体验处理前后的变化。

d35f06266080c896749a6fa56828d5d0.png

一个音频从文件到最终被用户听到会经过以下几个模块:首先是音乐文件通过网络下载到手机客户端。然后,QQ音乐播放器会对其进行解码得到PCM数据。最后再通过调用播放接口,将音频数据送到物理声卡进行播放。

QQ音乐音频处理模块的处理对象就是PCM数据,位置主要集中在播放器解码后。所以又叫做音频后处理。这里的后是相对文件存储来说的。具体的处理过程如左下图所示,PCM数据经过串行结构的信号处理模块,最终仍然输出PCM数据。中间的处理模块可根据业务需求,自由组合搭配,从而实现想要的效果。

b939cf7a4b8091ff7439e4b483831915.png

目前在QQ音乐播放器中,已经落地的后处理技术主要有以下几种:

银河音效,以及由音效模块衍生出来的一些新特性,比如变速不变调、动态装饰播放页面的智能光效、听觉与视觉联动的音乐可视化。

还有一个比较有趣的声音事件检测模块。我们把它应用在了生日闪屏的吹蜡烛效果上。可以通过麦克风的声音录入,模拟蜡烛被吹灭的效果。

-02-

空间环绕效果的设计

2.1. 立体声环绕效果

a071a983b66c06739b094805818b413f.png

大多数混音棚里出来的立体声,会遵循MS的假设。也就是说,由左右声道构成的立体声信号,可拆分成中置信号和环绕信号两部分。中置信号往往包含着人声、鼓等不做特殊摆位的成分,而环绕则包含着其他一些空间摆位的乐器。调整二者的比例关系,就可以得到不同的环绕效果。中置比重越大,感知到的声像是越窄的;相反的,环绕比重增大,感知到的声像是越宽的。其实这种中置和环绕的拆分,也算是一种比较粗糙的分离。还可以在此基础上,叠加不同的效果,从而实现一些扩展效果。

另外,还有一类比较棘手的音源,比如左右声道的信号完全一样。这种严格上已经不算是立体声信号。用耳机听,会发现声像几乎都集中在中间位置。那么套用MS假设的话,单通道信号就是中置信号。这时可以利用一些去相关的手段来制作环绕声信号,比如均衡、延迟、混响等。制作出来的环绕声信号,可以与原单通道信号叠加成为左声道信号,与原单通道信号相减成为右声道信号。经过上述处理后所形成的立体声信号,环绕效果会明显增强。

2.2. 多通道环绕效果

bac8bb9a37369ac1b02a2700bbbb1f39.png

最理想的环绕效果是多通道的真实扬声器阵列的效果。在双声道立体声的基础上,增加正前方的中置信号,和左后方右后方的环绕信号,就可以构成5.1声道音乐。将环绕信号继续拆分成正左正右,左后、右后,便是我们常常提到的7.1声道音乐。这还只是水平方位的扬声器布局。在天花板上增加4个,可以营造声场的高度信息。基于这个思路,还可以不断增加空间中扬声器的数量。目前,世界上通道数最多的配置是日本NHK提出的22.2通道的扬声器阵列。大家较熟悉的杜比全景声主要则是在7.1.4的扬声器布局上设计实现的。

家庭影院固然效果最好,但现在更多的听音场景是耳机。那么在耳机场景,我们又该如何增强环绕效果呢?

2.3. 双耳环绕效果增强

157fcf1f6620c6e541676f7b78169d46.png

这里需要引入HRTF头相关传递函数的概念。它描述的是空间中点声源到达双耳鼓膜处的响应系统。如左上图所示,同一声源,由于经过了不同的传输路径到达了左右耳,最后形成的声波也不同。人耳正是根据这些差异性判断声源方位。如果我们能找到声源在不同位置的HRTF函数,就可以模拟声源从不同方位传来的效果。理想情况下,戴上耳机听音乐,就像没有带耳机一样,可以将多通道扬声器阵列营造的环绕感塞到耳机里。

右下图是一种测量头相关传递函数的方法。事先制作一个环形扬声器的阵列。同时,在人耳的两侧分别贴上两个同步采集的麦克风。随着环形阵列的摆动,可以测得空间多个位置到达双耳的传递函数。除了这种专业的测量方法,还有在家里完成类似测量的案例。头部的不停摆动,来模拟声音从不同的角度到达双耳。经过以上过程,就可以得到几乎整个球面坐标点到达双耳的HRTF函数。

72f328e18b597e5ab4bec3c8a0bbbf8f.png

有了传递函数,将一段单通道信号经过双耳的传递函数处理后,就形成了立体声信号。这时用耳机试听,就可以感受到明显的方位感。利用这一原理,曲库里5.1通道的歌曲,也可以用耳机来试听。具体做法是,每个音箱作为一个独立的声源,有一个单独的布放角度。依次把几个音箱的信号,用双耳传递函数处理后,叠加输出,就形成了立体声信号。这便是设计5.1环绕音效的基本原理。

方位控制还可以有很多种应用,比如声音旋转。在不同的时刻把声音调制到不同的方位,可以让声音形成一种旋转的感觉。业内有专注睡眠的软件,利用这种旋转效果,来达到按摩头皮的作用。外网常看到用户制作的号称8D的声音效果,其实也是相似的原理。在QQ音乐中也有上万个旋转效果的歌单。为了节省用户对这类歌曲的制作成本,使得任意歌曲都能一键拥有类似效果,我们开发了3D音效。大家也可以在QQ音乐中直接试听体验。

a8a429c31b86f9708ddf01e506823329.png

上文介绍了HRTF函数的应用。大家可能会有疑问。HRTF函数是现场实测的。用这种针对某一个人的测量数据,给千千万的用户使用,效果会一致吗?答案是否定的。每位用户的耳型头型各不相同,听到的效果肯定也是千差万别的。针对这种差异性,我们能做点什么呢?是否可以实现一个真正的定制化的效果?

首先,差异点主要来自两个方面,一个是每个人应该拥有独一无二的HRTF函数。这影响着用户对声源方位角度的判断;另一个,每个人对声音频率的感知能力不同,我们称之为耳纹。最明显的一个说明案例是,随着年龄的增加,对高频的感知能力是下降的。有的人用耳过度,衰减会更厉害。方位感知和频率感知是从不同维度描绘了听音效果的差异性。针对HRTF函数的差异,可以将用户的头形、耳形等生理特征与已有的HRTF数据库做关系映射,从而节省了HRTF实地测量的繁琐过程。当然,这只是一种近似,是介于公模和私模之间的一个权衡效果。另外是耳纹的定制,针对用户听力水平上的差异,可以通过纯音测试获得用户对各个频段的敏感程度。

bf5ccd1dd36fbe2cd51e88614a0ee422.png

定制的过程比较简单。如图中所示,用户只需要通过正脸和侧脸的拍照,我们就可以计算出所需要的头型和耳形等关键参数。同样,听力测试也是通过用户的选择得到用户的听觉阈值曲线,从而实现个性化的定制。

ed81c4d0be14f611a5820d1edcb0e42a.png

除了耳机听音场景,我们还考虑了外放场景如何增加环绕感。扬声器的夹角决定了用户所能感知到的声场宽度。理论上说利用HRTF函数将声源调制到更大的角度,就可以让用户感知到更宽的声场。但实际尝试后效果并不理想。因为HRTF本身应用在耳机场景。当应用在扬声器场景时,会因为扬声器的互相串扰而大打折扣。要克服这一问题,需要在角度调制和扬声器重放之间,添加一个串扰消除的预处理。这样便可以实现在外放场景中,真正拓宽声场的效果。

5bcf7723d099ee22389a2edf71f27361.png

根据这一原理我们设计了外放环绕音效。在手机场景,现在很多中高端手机已经配备了立体声扬声器来播放音乐。大家可以把手机横屏,体验一下。

另外,此音效还覆盖到了音箱和汽车等常见的扬声器播放场景。

87939a3b560c58137df7ddf816d5c060.png

声音从音箱发出后,会在空间里继续传播。上图中,黄色点声源发出的声音朝四面八方扩散开来。蓝色的听音位置收到了直达声后,又陆续收到了经过墙壁和者天花板作用的反射声。这些声音的共同作用就是混响。由于听音位置会感受到来自四面八方的声音,会体验到一种包围感。当然缺点也是很明显的。多个声源不同步的发声,会产生一种浑浊感。

不同的房间有不同的反射效果。将各个声音按照达到时间依次排列,同时考虑声音能量的衰减,便构成了可以描述这个房间特征的空间脉冲响应。若想模拟某个空间重放音乐的效果,只需要卷积对应的脉冲响应即可。比如模拟浴室,地铁,音乐厅等不同的场景。

简单试听一下经过地铁脉冲响应处理后的歌曲。

-03-

 音效制作工具的设计

3.1. 开放基础组件

截止目前已经开放的组件有30多款。包括实现经典调音的三大件:均衡器、压缩器、混响器;听感模拟的脉冲卷积、叠加器等;及听感偏好调节的:低音增强、人声增强、环绕增强等效果。

413885b656704ef1a53934e085ac499e.png

由于这些组件符合线性时不变系统,用户可以像搭积木一样,设计自己喜欢的音效。每个效果拥有独立开关,方便用户决定是否保留该效果器。用户使用音效的场景集中在移动端。所以,我们为大家提供了二维码扫描、移动端即刻体验的功能。

为了让更多人可以使用用户自制音效,获得与官方音效同等的曝光量,用户也可以将制作好的音效通过PC端上传至后台审核系统。审核通过后可被认定音效达人。

3.2. 经典混音工具

68a80b99762583603301db8a75ab4926.png

经典混音工具多数包含了更高阶的设置参数,如混响器的空间大小、干湿比等可调,压缩器的启动释放时间等等。这些能力基本可以满足常见混音的所有设计需求。

46913b0eb7e436393177e9142355f752.png

其中,除了十段均衡以外,我们单独开发了更加专业性能更加强劲的参量均衡器,具备以下功能:

  1. 各个频段的精准控制;

  2. 动态显示输入输出信号的频谱图,直观明了地对比处理前后的效果;

  3. 同时均衡器的效果器种类丰富,多达9种可选。包括:bell、架子滤波器等全部开放;

  4. 包括所有效果器开放品质因子Q值和过渡带斜率slope等参数的设置权限。

可以说这是业内参数种类最全、自由度最高的参量均衡器。

3.3. 听感模拟工具

7cc077f917c5379cca78df0185d7df7b.png

听感模拟主要是环境的模拟。一个是叠加器。把所要模拟的环境里面的特有的声音元素混入歌曲中,如海波听歌时会伴随着海浪的声音,下雨天会有雨声等。

另一个是利用脉冲卷积。使音乐与特定的房间声学环境相结合,从而营造一种特定空间的听音体验。如下图比较有名的脉冲混响插件。它集成了全球各大有名的音乐重放空间,包括教堂、剧院等等。

有了这样的脉冲卷积,用户可以设想自己坐在那个空间里听音乐的感觉。

3.4. 听感调节工具

e0650bff07bbff9fd52c6e65b9fb108d.png

关于听感调节,我们对底层工具做了稍微抽象化的提炼,如除了可以直接提升低频能量占比外,还可以增加虚拟低音处理。在流行音乐中,人声基本上都分布在中置信号的人声频段内,提升这部分信号的能力占比,同样可以达到突出人声的目的。

高保真和环绕增强,也是类似原理。

3.5. 曲风改编工具

3d7abe05069f6ed77a0c366864e4e399.png

此外,我们还在歌曲风格的自动改编方面做了尝试,如将歌曲改编成具有DJ风格的音乐。大致做法是,在后台利用机器学习的方法拾取歌曲的关键信息,包括鼓点和和弦等。同时,利用混音的知识,如制作DJ混音的常用规则,将预先制作的LOOP元素按照歌曲信息和混音规则的要求,形成节奏音轨。将节奏音轨叠加至原歌曲,便可以混合出具有DJ风格的歌曲。此外,混音规则和MIR信息还可驱动手机的闪光灯和振动马达,让用户在感知到多维度的听音体验。

7721a5cf117f3455b72b4be2ca4f7cd4.png

除了DJ风格的改编外,还有更多remix效果的尝试,如一键秒变广场舞、电子、古风、摇滚等风格。

大家可以结合以下例子感受实际效果。

3.6. 达人音效社区

3a2492c1db763667257dd475113b10bd.png

目前一共开放了30多款基础效果器供用户DIY音效。未来还会陆续开放更多。这套灵活自由的制作工具,激发了广大用户的创作欲望。用户可以二维码分享自己的音效作品,也可以上传至官方审核平台。官方审核通过后,可以获得音效达人的称号。基于此,我们顺势将用户汇集在了音效小组中讨论分享,并参与音效活动,从而形式了接近20万人的音效社区。

3.7. 官方制作音效

71a516682eaea4d38715a343750e7df0.png

不仅是UGC音效,我们的官方音效也是按照音效组件组合的方式设计的。这种链式结构的音效工程明显提升了官方音效的制作和发布效率。同时,还可以做到后台的动态下发,及时更新相关效果。

3.8. 音效组件化

15a3ffc0d2ff2efcbb507049ef8ae482.png

另外,我们提炼出了音效处理能力,实现了跨平台音效SDK的组件设。,在SDK中,我们抽离共用逻辑,统一管理音效资源的下载,和音效工程文件的构建。APP层只需要负责UI的交互,以及网络和文件操作接口的输入即可。这样的组件化设计,使银河音效可以在不同操作系统的应用平台快速接入。

732b17430d94e79810b2cad286031013.png

除了QQ音乐客户端之外,全民K歌,JOOX、车载场景的爱趣听、酷我、波点音乐,都陆续接入了银河音效。也欢迎有类似业务需求的小伙伴与我们合作。

-04-

银河音效的未来展望

00d58da07ca1d45114a18f691a9af359.png

音乐播放的整个链路大致可分为3个步骤。

第一块是歌曲或者音源部分。比如从歌单的角度,为不同的歌曲配搭合适的音效。目前已经小有成效,大家可以关注QQ音乐的个性化歌单。我们赋予歌单制作搭配音效的能力。

第二块是音频解码阶段,也就是现在播放页的银河音效。为了满足用户的听音偏好,我们会开发更多样的官方音效。

第三块是播放设备端,不同的设备需要适配不同的效果。我们会和更多的硬件厂商合作。利用自己的制作工具,发布官方硬件适配效果。另外,我们也在和易车APP合作,联合发布最新车型的各种车载音响系统的测试信息,包括根据测试结果定制的车载音效。

4789d05390b037a4e82765c7f038398b.png

最后,在空间音频方面我们一直在尝试各种可能性,如音乐空间的虚拟听音环境、线下展览的扬声器阵列、和线上直播场景的全景渲染,包括相关空间音频制作工具的落地。

欢迎大家持续关注银河音效。以上是本次的分享,谢谢!


86ee8286ada901b7b458a80d0f7e12e4.png

LiveVideoStackCon 2023上海讲师招募中

LiveVideoStackCon是每个人的舞台,如果你在团队、公司中独当一面,在某一领域或技术拥有多年实践,并热衷于技术交流,欢迎申请成为LiveVideoStackCon的讲师。请提交演讲内容至邮箱:speaker@livevideostack.com。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/494537.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

取代你的可能不是AI,而是比你更会使用AI的人

1、背景 从开始了解AI到现在已经1个月了,最明显的就是,产品层出不穷,以前只有技术人员才关系AI,现在各行各业都在关系AI,都希望通过它提高生产力和创造力; 在当今大数据和人工智能时代,职场和企…

MySQL基础(一)数据库概述

1. 为什么要使用数据库 持久化(persistence):把数据保存到可掉电式存储设备中以供之后使用。大多数情况下,特别是企业级应用,数据持久化意味着将内存中的数据保存到硬盘上加以”固化”,而持久化的实现过程大多通过各种关系数据库…

Linux网络基础-2

在之前的网络基础博客中,我们对网络的基本概念进行了一个简单的介绍,那么接下来的网络内容中,我们将对网络通信中的典型协议进行详细解释。 我们根据网络协议中的分层来对典型协议进行注意介绍,不过对于物理层的传输我们不做考究…

docker安装mongodb出现bash: mongo: command not found

安装MongoDB容器 -e MONGO_INITDB_ROOT_USERNAME创建管理员账号 -e MONGO_INITDB_ROOT_PASSWORD123456创建密码 映射容器服务的 27017 端口到宿主机的 27017 端口 docker run -d -p 27017:27017 --name mongodb -e MONGO_INITDB_ROOT_USERNAMEadmin -e MONGO_INITDB_ROOT_PAS…

简单分享微信里怎么添加投票活动

今天小编要分享是投票活动,怎么做投票活动,首先要做投票活动是需要用到第三方平台,这样我们才可以快速的制作出投票活动链接,其次我们是在微信小程序上添加投票活动的话,我们需要有微信小程序平台,然后把二…

数字信号处理2:频率

频率这个东西,说实话,我记得好像是初中还是小学的时候,刚接触三角函数的时候老师就已经开始给我们教频率了,但是,因为一直没有碰过信号,所以对频率也就没怎么关注过。 频率就是周期的倒数,这是…

Centos7 DolphinScheduler集群部署

DolphinScheduler集群部署 1 DolphinScheduler集群部署1.1 DolphinScheduler简介1.2 集群规划1.3 前置准备工作1.4 DolphinScheduler集群部署1.4.1 解压DolphinScheduler安装包1.4.2 创建元数据库及用户1.4.3 配置一键部署脚本1.4.4 初始化数据库1.4.5 配置部署用户免密及权限1…

中国网络安全人才需求

如果你是一个想要入门网络安全行业的小白、如果你是网络安全专业在读的大学生、如果你是正在找工作的新手,那么这篇文章你一定要仔细看。毕竟知己知彼百战百胜,知道行业的人才需求才能更好得发挥自己的优势。 当你打开BOSS直聘、拉钩等招聘网站&#xf…

打动人心的故事 | 如何利用文案在Facebook上塑造品牌形象

在当今的数字营销时代,文案已经成为各大平台上不可或缺的元素之一。在Facebook上,一个好的文案能够为品牌带来巨大的曝光率和用户黏性,甚至可以改变用户对品牌的看法。那么,如何利用文案在Facebook上打动人心,塑造品牌…

Office Tool Plus的使用

是否为安装,卸载,激活Office而烦恼? 下载 地址:Office Tool Plus 官方网站 - 一键部署 Office 安装office 先安装Office,Office_Pro_Plus_2021_LTSCProjectVisio_x64_zh_CN_VL_2022-02 注意,要安装批量…

亚马逊云科技能为“医疗和生命科学”做些什么?

‍数据智能产业创新服务媒体 ——聚焦数智 改变商业 4月27日,亚马逊云科技医疗与生命科学行业峰会在上海盛大召开,会议汇聚了业界专家和思想领袖,共同探讨行业数字化转型和创新之道。 “医疗及生命科学”是人类社会永恒的命题,科…

爱创科技参加基于GS1标准的医药全球追溯体系建设研讨会

2023 年 4 月 26 日,由中国化学制药工业协会、中国物品编码中心、北京药盾公益基金会联合主办的以“携手迎接药品全球化挑战——基于GS1标准的医药全球追溯体系建设”为主题的研讨会在上海成功举办,爱创科技作为支持单位参加了本次会议,爱创科…

JQuery实现自定义滚动条

在页面中虽然可以通过CSS修改滚动条的样式,但是部分属性是无法自己修改和设置的,而且不同浏览器存在兼容问题,因此通过JS来实现滚动条在自定义滚动条的环境下也是有必要的。 接下来,我们来实现上图两种情况下滚动条的实现。 一、页面搭建 1.…

深浅拷贝以及解决浅拷贝(以string浅拷贝为例)

一、什么是浅拷贝 在类和对象的时候,其中编译器生成的默认拷贝构造函数中,内置类型是按照字节方式直接拷贝的,而自定义类型是调用其拷贝构造函数完成拷贝的。 默认的拷贝构造函数对象按内存存储按字节序完成拷贝,这种拷贝叫做浅…

第三十五章 Unity人形动画(下)

本章内容主要就是动画数据的独立文件使用方式。有了独立的动画文件,我们就可以将其应用到其他模型上面了。最简单的方式就是,我们可以给其他模型编辑动画控制器的时候,使用这些动画文件。Unity则给我们提供了更加高级的共享方式,就…

【iOS KVO(下) KVO的内部结构和源码】

前言 学习KVO的过程,我分为了KVO的实现过程分析和内部结构的学习,学习了实现过程,接下来看KVO是通过何种内部结构实现如此通知📢和监听。 1 KVO的存储结构 KVO的实现过程离不开合理的存储结构,用到了如下几个类 GS…

Linux + 香橙派 + V4L2 + http 实现远程监控摄像头在网页端显示

项目场景: 项目需求,需要做一个基于边缘端的人脸识别远程监控摄像头并在网页前端展示 ,这里采用国产香橙派作为边缘计算终端,安装ubuntu系统,系统中采用v4l2接口对摄像头进行获取,当客户端通过网页进行请求…

oracle 数据库创建表空间、用户、数据库实例、授权、数据导入

在安装完oracle 数据库后默认会创建一个orcl的数据库实例。除了这种方式外还可以通过别的方式创建数据库 一般导入数据通过以下五个步骤 创建导入的数据库实例,已有的话可以忽略创建表空间 2.1 创建临时表空间 2.2 创建数据表空间创建用户给用户授权导入数据库数据…

Camtasia 2023新功能添加了新的视觉效果、滤镜和其他重大改进

总部位于密歇根州的 TechSmith 推出了Camtasia 2023,这是其适用于 Mac 和 Windows 的专业屏幕录制和视频编辑工具的重要新版本。 2023 版本侧重于两个特定领域:提供增强的视觉效果和实现各种用户功能请求。 Camtasia 2023 的亮点包括能够在截屏视频中实…

基于Vue的个人网站的设计与实现

统是基于面向对象编程的web应用程序。主要实现的功能有前台的在线留言、音乐播放、下载、收藏、用户注册和后台的背景音乐管理、相册信息管理、网站新闻管理、留言管理等功能。 设计开发一个更能满足网民需求的交流载体,使大家在网上可以提供学习交流分享的平台&…