是否可以在最小化状态UWP下录制音频
Is it possible to record Audio in minimized state UWP
我需要在 UWP 中使用录音
但是如果应用程序被最小化,则录制不起作用。
有没有办法做到这一点,而不使用受限的能力?
在后台录制音频是一项受限功能。
添加受限能力的方法如下:
package.appxmanifest
<?xml version="1.0" encoding="utf-8"?>
<Package
...
xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
IgnorableNamespaces="... rescap">
...
<Capabilities>
<rescap:Capability Name="backgroundMediaRecording"/>
</Capabilities>
</Package>
添加此功能后,应用程序可以在最小化时继续录制音频。
不过需要注意的是,这是一种有限的能力。如果您想在 Microsoft Store 中列出,您需要提供额外的说明来描述使用此功能的原因。
谢谢。
使用扩展执行会话。它将允许您的 uwp 应用程序在最小化时录制音频。这里是linkhttps://docs.microsoft.com/en-us/windows/uwp/launch-resume/run-minimized-with-extended-execution了解详情。我试过了,对我来说效果很好。
添加 EnteredBackground 和 LeavingBackground 事件:
this.EnteredBackground += AppEnteredBackground;
this.LeavingBackground += AppLeavingBackground;
当检测到事件时,调用BeginExtendedExecution,当允许会话时,调用捕获音频函数。
private async void BeginExtendedExecution()
{
ClearExtendedExecution();
var newSession = new ExtendedExecutionSession();
newSession.Reason = ExtendedExecutionReason.Unspecified;
newSession.Description = "recording audio";
newSession.Revoked += SessionRevoked;
ExtendedExecutionResult result = await newSession.RequestExtensionAsync();
switch (result)
{
case ExtendedExecutionResult.Allowed:
session = newSession;
RecordingAudio();
break;
default:
case ExtendedExecutionResult.Denied:
newSession.Dispose();
break;
}
}
我需要在 UWP 中使用录音 但是如果应用程序被最小化,则录制不起作用。
有没有办法做到这一点,而不使用受限的能力?
在后台录制音频是一项受限功能。
添加受限能力的方法如下:
package.appxmanifest
<?xml version="1.0" encoding="utf-8"?>
<Package
...
xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
IgnorableNamespaces="... rescap">
...
<Capabilities>
<rescap:Capability Name="backgroundMediaRecording"/>
</Capabilities>
</Package>
添加此功能后,应用程序可以在最小化时继续录制音频。
不过需要注意的是,这是一种有限的能力。如果您想在 Microsoft Store 中列出,您需要提供额外的说明来描述使用此功能的原因。
谢谢。
使用扩展执行会话。它将允许您的 uwp 应用程序在最小化时录制音频。这里是linkhttps://docs.microsoft.com/en-us/windows/uwp/launch-resume/run-minimized-with-extended-execution了解详情。我试过了,对我来说效果很好。 添加 EnteredBackground 和 LeavingBackground 事件:
this.EnteredBackground += AppEnteredBackground;
this.LeavingBackground += AppLeavingBackground;
当检测到事件时,调用BeginExtendedExecution,当允许会话时,调用捕获音频函数。
private async void BeginExtendedExecution()
{
ClearExtendedExecution();
var newSession = new ExtendedExecutionSession();
newSession.Reason = ExtendedExecutionReason.Unspecified;
newSession.Description = "recording audio";
newSession.Revoked += SessionRevoked;
ExtendedExecutionResult result = await newSession.RequestExtensionAsync();
switch (result)
{
case ExtendedExecutionResult.Allowed:
session = newSession;
RecordingAudio();
break;
default:
case ExtendedExecutionResult.Denied:
newSession.Dispose();
break;
}
}