UnityAPI手册-2019.4官网版
文集大纲加载中……
本文档使用 MrDoc 发布
-
+
首页
AudioClip.Create
# [AudioClip](https://docs.unity3d.com/cn/2019.4/ScriptReference/AudioClip.html).Create public static [AudioClip](https://docs.unity3d.com/cn/2019.4/ScriptReference/AudioClip.html) **Create** (string **name**, int **lengthSamples**, int **channels**, int **frequency**, bool **stream**); public static [AudioClip](https://docs.unity3d.com/cn/2019.4/ScriptReference/AudioClip.html) **Create** (string **name**, int **lengthSamples**, int **channels**, int **frequency**, bool **stream**, [AudioClip.PCMReaderCallback](https://docs.unity3d.com/cn/2019.4/ScriptReference/AudioClip.PCMReaderCallback.html) **pcmreadercallback**); public static [AudioClip](https://docs.unity3d.com/cn/2019.4/ScriptReference/AudioClip.html) **Create** (string **name**, int **lengthSamples**, int **channels**, int **frequency**, bool **stream**, [AudioClip.PCMReaderCallback](https://docs.unity3d.com/cn/2019.4/ScriptReference/AudioClip.PCMReaderCallback.html) **pcmreadercallback**, [AudioClip.PCMSetPositionCallback](https://docs.unity3d.com/cn/2019.4/ScriptReference/AudioClip.PCMSetPositionCallback.html) **pcmsetpositioncallback**); Obsolete public static [AudioClip](https://docs.unity3d.com/cn/2019.4/ScriptReference/AudioClip.html) **Create** (string **name**, int **lengthSamples**, int **channels**, int **frequency**, bool **_3D**, bool **stream**); Obsolete public static [AudioClip](https://docs.unity3d.com/cn/2019.4/ScriptReference/AudioClip.html) **Create** (string **name**, int **lengthSamples**, int **channels**, int **frequency**, bool **_3D**, bool **stream**, [AudioClip.PCMReaderCallback](https://docs.unity3d.com/cn/2019.4/ScriptReference/AudioClip.PCMReaderCallback.html) **pcmreadercallback**); Obsolete public static [AudioClip](https://docs.unity3d.com/cn/2019.4/ScriptReference/AudioClip.html) **Create** (string **name**, int **lengthSamples**, int **channels**, int **frequency**, bool **_3D**, bool **stream**, [AudioClip.PCMReaderCallback](https://docs.unity3d.com/cn/2019.4/ScriptReference/AudioClip.PCMReaderCallback.html) **pcmreadercallback**, [AudioClip.PCMSetPositionCallback](https://docs.unity3d.com/cn/2019.4/ScriptReference/AudioClip.PCMSetPositionCallback.html) **pcmsetpositioncallback**); ## 参数 | name | 剪辑的名称。 | | ------------------------ | ------------------------------------------------------------------------------------------------------ | | lengthSamples | 样本帧数。 | | channels | 每帧的声道数。 | | frequency | 剪辑的采样频率。 | | _3D | 音频剪辑以 3D 格式播放。 | | stream | 如果剪辑是流式传输的(即 pcmreadercallback 即时生成数据),则为 true。 | | pcmreadercallback | 调用该回调以生成样本数据块。非流式传输剪辑仅在创建时调用该回调一次,而流式传输剪辑将持续调用该回调。 | | pcmsetpositioncallback | 每当剪辑循环或更改播放位置时,就会调用该回调。 | ## 返回 **AudioClip** 对创建的 AudioClip 的引用。 ## 描述 使用名称和给定的样本长度、声道和频率创建用户 AudioClip。 使用 SetData 设置您自己的音频数据。使用 PCMReaderCallback 和 PCMSetPositionCallback 委托,每当剪辑读取数据和更改位置时获取一个回调。如果 stream 为 true,Unity 将按需读取小块数据。如果 stream 为 false,则在创建期间读取所有样本。 ``` using UnityEngine; using System.Collections; public class ExampleClass : MonoBehaviour { public int position = 0; public int samplerate = 44100; public float frequency = 440; void Start() { AudioClip myClip = AudioClip.Create("MySinusoid", samplerate * 2, 1, samplerate, true, OnAudioRead, OnAudioSetPosition); AudioSource aud = GetComponent<AudioSource>(); aud.clip = myClip; aud.Play(); } void OnAudioRead(float[] data) { int count = 0; while (count < data.Length) { data[count] = Mathf.Sin(2 * Mathf.PI * frequency * position / samplerate); position++; count++; } } void OnAudioSetPosition(int newPosition) { position = newPosition; } } ```
da
2022年5月24日 09:55
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
关于 MrDoc
觅思文档MrDoc
是
州的先生
开发并开源的在线文档系统,其适合作为个人和小型团队的云笔记、文档和知识库管理工具。
如果觅思文档给你或你的团队带来了帮助,欢迎对作者进行一些打赏捐助,这将有力支持作者持续投入精力更新和维护觅思文档,感谢你的捐助!
>>>捐助鸣谢列表
微信
支付宝
QQ
PayPal
Markdown文件
分享
链接
类型
密码
更新密码