代码拉取完成,页面将自动刷新
同步操作将从 OpenHarmony/xts_tools 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
static napi_value AudioCaptureGetTimestamp(napi_env env, napi_callback_info info)
{
OH_AudioStreamBuilder *builder = CreateCapturerBuilder();
OH_AudioCapturer *audioCapturer;
OH_AudioStreamBuilder_GenerateCapturer(builder, &audioCapturer);
OH_AudioCapturer_Start(audioCapturer);
int64_t framePosition;
int64_t timestamp;
OH_AudioStream_Result result = OH_AudioCapturer_GetTimestamp(audioCapturer, CLOCK_MONOTONIC, &framePosition, ×tamp);
OH_AudioCapturer_Stop(audioCapturer);
OH_AudioCapturer_Release(audioCapturer);
OH_AudioStreamBuilder_Destroy(builder);
napi_value res;
napi_create_int32(env, result, &res);
return res;
}
static napi_value AudioCaptureGetFramesRead(napi_env env, napi_callback_info info)
{
OH_AudioStreamBuilder *builder = CreateCapturerBuilder();
OH_AudioCapturer *audioCapturer;
OH_AudioStreamBuilder_GenerateCapturer(builder, &audioCapturer);
int64_t frames;
OH_AudioStream_Result result = OH_AudioCapturer_GetFramesRead(audioCapturer, &frames);
OH_AudioStreamBuilder_Destroy(builder);
napi_value res;
napi_create_int32(env, result, &res);
return res;
}
static napi_value AudioCaptureGetFrameSizeInCallback(napi_env env, napi_callback_info info)
{
OH_AudioStreamBuilder *builder = CreateCapturerBuilder();
OH_AudioCapturer *audioCapturer;
OH_AudioStreamBuilder_GenerateCapturer(builder, &audioCapturer);
int32_t frameSize;
OH_AudioStream_Result result = OH_AudioCapturer_GetFrameSizeInCallback(audioCapturer, &frameSize);
OH_AudioStreamBuilder_Destroy(builder);
napi_value res;
napi_create_int32(env, result, &res);
return res;
}
OH_AudioStreamBuilder *CreateRenderBuilder()
{
@@ -314,6 +360,75 @@ OH_AudioStreamBuilder *CreateRenderBuilder()
return builder;
}
static void AudioRendererDeviceChangeCb(OH_AudioRenderer* renderer, void* userData,
OH_AudioStream_DeviceChangeReason reason)
{}
static napi_value AudioSetRendererOutputDeviceChangeCallback(napi_env env, napi_callback_info info)
{
OH_AudioStreamBuilder *builder = CreateRenderBuilder();
OH_AudioStream_Type type = AUDIOSTREAM_TYPE_RENDERER;
OH_AudioStreamBuilder_Create(&builder, type);
OH_AudioRenderer_OutputDeviceChangeCallback deviceChangeCb = AudioRendererDeviceChangeCb;
OH_AudioStream_Result result = OH_AudioStreamBuilder_SetRendererOutputDeviceChangeCallback(builder, deviceChangeCb, NULL);
OH_AudioStreamBuilder_Destroy(builder);
napi_value res;
napi_create_int32(env, result, &res);
return res;
}
static napi_value AudioRenderGetFramesWritten(napi_env env, napi_callback_info info)
{
OH_AudioStreamBuilder *builder = CreateRenderBuilder();
OH_AudioRenderer *audioRenderer;
OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
int64_t frames;
OH_AudioStream_Result result = OH_AudioRenderer_GetFramesWritten(audioRenderer, &frames);
OH_AudioStreamBuilder_Destroy(builder);
napi_value res;
napi_create_int32(env, result, &res);
return res;
}
static napi_value AudioRenderGetTimestamp(napi_env env, napi_callback_info info)
{
OH_AudioStreamBuilder *builder = CreateRenderBuilder();
OH_AudioRenderer *audioRenderer;
OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
OH_AudioRenderer_Start(audioRenderer);
int64_t framePosition;
int64_t timestamp;
OH_AudioStream_Result result = OH_AudioRenderer_GetTimestamp(audioRenderer, CLOCK_MONOTONIC, &framePosition, ×tamp);
OH_AudioRenderer_Stop(audioRenderer);
OH_AudioRenderer_Release(audioRenderer);
OH_AudioStreamBuilder_Destroy(builder);
napi_value res;
napi_create_int32(env, result, &res);
return res;
}
static napi_value AudioRenderGetFrameSizeInCallback(napi_env env, napi_callback_info info)
{
OH_AudioStreamBuilder *builder = CreateRenderBuilder();
OH_AudioRenderer *audioRenderer;
OH_AudioStreamBuilder_GenerateRenderer(builder, &audioRenderer);
int32_t frameSize;
OH_AudioStream_Result result = OH_AudioRenderer_GetFrameSizeInCallback(audioRenderer, &frameSize);
OH_AudioStreamBuilder_Destroy(builder);
napi_value res;
napi_create_int32(env, result, &res);
return res;
}
OH_AudioStreamBuilder_GenerateCapturer(builder, &audioCapturer);
OH_AudioCapturer_Start(audioCapturer);
int64_t framePosition;
int64_t timestamp;
OH_AudioStream_Result result = OH_AudioCapturer_GetTimestamp(audioCapturer, CLOCK_MONOTONIC, &framePosition, ×tamp);
OH_AudioCapturer_Stop(audioCapturer);
OH_AudioCapturer_Release(audioCapturer);
OH_AudioStreamBuilder_Destroy(builder);
napi_value res;
napi_create_int32(env, result, &res);
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。