调查:3.X 音频系统优化修改意见征集

hello 大家好 我们预计会对 3.X 的 音乐系统做一些修改和优化。在修改之前我们希望更清晰的了解一些大家的想法,包括对于目前的音乐系统的反馈和希望整改的意见,比如有不少开发者依然喜欢原来 AudioEngine 系统,希望能够继续添加上等等。告诉我们一些希望如何使用,如何拓展。喜欢老接口的哪些地方和不喜欢哪些地方。

还有关于3D音频的看法,2d和3d音频的使用是希望独立开来还是合起来用?是否需要更深层次的音频资源缓存的管理?

为了更贴近用户,现跪求大家动动手指头,提供一些意见,这将有助于我们接下来的优化和修改。谢谢大家:pray:

Q1: 对AudioSource组件的使用体验。

注:AudioSource是一个组件,目前必须绑定到节点上才能使用,并且播放。

如果不绑定则会报错。这在3d场景上更方便获取位置信息但目前没有3d音频的功能,属于预备役。

  • 理解组件并感觉很好用,经常使用
  • 理解组件并感觉不好用,但不得不经常使用
  • 理解组件并感觉不好用,也不常使用
  • 不理解组件并不常使用

0 投票者

Q2: AudioSource作为组件是否方便?

  • 方便,并支持这样做。
  • 一般般,希望同时能够独立使用而不依赖节点。
  • 不方便,希望不作为组件存在。

0 投票者

Q3:AudioClip的使用感受

  • 理解并感觉很好用,经常使用
  • 理解并感觉不好用,但不得不经常使用
  • 理解并感觉不好用,也不常使用
  • 不理解并不常使用

0 投票者

Q4:AudioClip的缓存管理是否充分?

  • 充分,目前管理缓冲的接口能满足我的需求
  • 不充分,希望能够有更多的接口(可回帖表明具体需求)

0 投票者

Q5:对于2.x的AudioEngine是否了解

  • 了解并希望回归
  • 了解并无所谓是否回归
  • 不了解并无所谓
  • 不了解但希望能有

0 投票者

Q6: 对于3d音频的需求

  • 我的项目有需要并有自己实现
  • 我的项目有需要但没有自己实现
  • 我的项目不需要但希望有
  • 无所谓

0 投票者

Q7:是否有在编辑器里编辑音效和绑定动作的需求

  • 有绑定音效的需求并已自己实现
  • 有绑定音效的需求但没有自己实现
  • 没有绑定音效的需求但希望能有
  • 无所谓

0 投票者

Q8: 是否有混音的需求

  • 有混音的需求并自己在外部工具中实现
  • 有混音的需求但是没有实现
  • 没有需求但希望有新功能
  • 无所谓

0 投票者

Q9:有什么不满足并想要补充的接口需求?
可直接回帖说明具体需求~

1赞

希望有一套全平台音频加速播放的功能,游戏战斗中往往有一倍速,二倍速
音频在不同平台播放一般有数量限制,希望提高获取数量限制的api

3赞

我觉得根本不是 AudioSource 的问题,而是推出了组件式的 AudioSource 用于3d音效却没有考虑到 2d 的全局音效,属实拉跨,而且现在基本不自己做播放控制很容易出现播放多个音效出现的问题,看到后面修复了,但是如果超过最大播放数量那后面播放的音效呢?

1赞

老兄 有没有什么建议呢

目前播放音效没有便捷的方式,音效特点是播放时间短、但是频率非常高,playonshot内部会创建xmlrequest,导致短时间频繁调用卡死,用audio的play方式管理对于音效又复杂了

1赞

确实,主要是现在没有2D音频播放形式,我觉得音频既要可以独立播放,也要可以根据位置播放,这不冲突,但是如果全部都强求成需要绑在as组件上播,确实是有点麻烦了,而且每播一个就要创建一个

1赞

我个人建议是添加一个全局音效接口,比如直接用之前的 audioEngine,或者你们重新定义接口,audioSource 可以不用改,另外对于音频频繁播放的问题可以看看集成第三方库是否可以解决,如果可以最好是内置到 原生 和 web,还有对于音游里面的音频倍数播放这些功能都是必须的,做音游只用creator 的音频系统完全搞不了

或者还可以直接固定一个 audioSource 在场景节点上,直接 cc.director.getScene().audio 这样的方式获取后播放音频,不过还是要解决频繁播放的问题12345

加速减速,3d音效,更友好的接口和代码设计,目前自定义有点困难,支持流式流媒体

楼上几位说的在理,不管实体组件还是什么开发模式都是为了方便,特别是某些复杂游戏频繁使用,简单调用一下就行,有时用组件反而会更加麻烦。

另外:
希望能增加左右声道控制。

楼上都说的差不多了,希望有可以直接使用的2D音效接口,希望2D音效可以调整左右声道音量,希望可以增加音频加减速,希望最大音频数量可以获取或者有更灵活的处理办法,而不是超过直接播不出来

1赞

下面几点建议,也希望官方能注意下 :joy:
1、节点上的width,height,color的opacity,以前能直接在node上操控,现在不得不每次getComponent来操控!如果做tween动画,还得写多个!
2、premultipliedAlpha没有地方可以设置!
3、还有自动图集,2.x版本,只要一个自动图集放根目录就好了,每个bundle里的图片会根据该bundle来生成对应的图集,但现在会出现多份同样的图集或者全合在一起了。
4、有时候需要在打包时注入自定义的变量,以此来区分是开发,测试,线上这多种环境,但很难去实现。不得不在代码里手动修改。
5、极少数的时候,代码编写了,回到编辑器里刷新了,有缓存导致没生效,还以为哪里写错了。。。

我们做音乐游戏发现的几个问题及建议
1:平台兼容问题, 原生平台 微信小游戏平台 无法实现指定时间开始播放 播放都会从头开始
2:无法实现音乐设置倍速播放,音游中需要加速的话 需要准备两种倍速的歌曲文件有点浪费(并实现全平台化)

我们现在音频加速都是通过外部sdk实现的,有很多问题,如果官方能提供这个功能,那简直太爽了

之前我们公司有做音频类的游戏,需要对音效每帧做控制,如插入一帧或者增加某帧的音量等功能。用cocos满足不了需求,后来用第三方的SDK来做的

如果有3d音效的需求cocos自带的音效就不行了,我是用的openAL实现的3d音效。

建议:

  1. AudioSource 可以作为组件存在,也可以作为文件存在(例如 RenderTexture)
  2. 方便起见,AudioSource 文件不应当手动创建,而是自动创建。(正如 Texture/SpriteFrame 之于图片源文件那样,拖入音频文件时自动创建。例如音源文件有 AudioClip 和 AudioSource 两个子项,AudioSource 可以当 2D 音源单独使用,AudioClip 可以被组件的 AudioSource 引用使用。
  3. AudioSource 文件可以放在 resource 目录中动态加载,以完全实现通过代码播放。
  4. 全局的 audioEngine 个人觉得回归优先级不高。确实是有需求,因为 bgm 和 sfx 并开关静音的需求实在普遍。但如果 1~3 支持,那么对于开发者而言实现自己的 AudioManger 其实比较容易,而且还有更多定制益处。(大部分项目里,即便有 audioEngine,还是会自己包一层 AudioManager)
1赞

建议增加调整音频频率的功能(-1~1)