概要
方法
Clear():() |
GetConnectedWires(pin: string):{Wire} |
RecordAsync():() |
Stop():() |
活动
WiringChanged(connected: boolean,pin: string,wire: Wire,instance: Instance):RBXScriptSignal |
代码示例
音频录制器
local Workspace = game:GetService("Workspace")
local audioRecorder = Instance.new("AudioRecorder")
audioRecorder.Parent = Workspace
local audioPlayer = Instance.new("AudioPlayer")
audioPlayer.Asset = "rbxassetid://5829815715"
audioPlayer.Volume = 0.8
audioPlayer.Parent = Workspace
-- 将 AudioPlayer 连接到 AudioRecorder
local wire1 = Instance.new("Wire")
wire1.SourceInstance = audioPlayer
wire1.TargetInstance = audioRecorder
wire1.Parent = audioRecorder
-- 没有确切的方法来确定音频缓冲何时进入以正确触发录音
-- 录音将与原始资产相比具有前导空白静音
audioPlayer:Play()
audioRecorder:RecordAsync() -- 开始录制 AudioPlayer
print("正在录制...")
task.wait(5)
audioRecorder:Stop() -- 停止录制
print("已停止录制!")
audioPlayer:Stop()
audioPlayer.TimePosition = 0
-- 创建输出以听取结果
local audioOutput = Instance.new("AudioDeviceOutput")
audioOutput.Parent = Workspace
local wire2 = Instance.new("Wire")
wire2.SourceInstance = audioPlayer
wire2.TargetInstance = audioOutput
wire2.Parent = audioOutput
-- 获取录制的内容并在 AudioPlayer 中播放
local resultUri = audioRecorder:GetTemporaryContent().Uri
audioPlayer.Asset = resultUri
if not audioPlayer.IsReady then
audioPlayer:GetPropertyChangedSignal("IsReady"):Wait()
end
audioPlayer:Play()API 参考
属性
方法
Clear
AudioRecorder:Clear():()
返回
()
RecordAsync
AudioRecorder:RecordAsync():()
返回
()
Stop
AudioRecorder:Stop():()
返回
()
活动