标题说明了一切,我想获得并设置通用Windows(iot)应用程序的音量级别。
它可以是与我的特定应用程序相关的声级 - 这是理想的;或者它可以是系统声级 - 如果必要/可能。
我正在使用visual studio 2015
我一直在寻找示例/样本,但已经干了。
任何帮助都将不胜感激。
(注意这不是一个重复的问题 - 我想获取和设置通用Windows应用程序的音量级别 - 这不能通过uwp中的COM对象完成 - uwp应用程序也不使用VBScript或JScript)< / p>
答案 0 :(得分:0)
查看此源代码:https://github.com/File-New-Project/EarTrumpet
它将包含您正在寻找的内容。
答案 1 :(得分:0)
您可以使用MediaPlayer Volume属性控制自己应用程序的音量。它不能控制整个系统的容量,但它允许您设置自己的应用程序容量。
https://msdn.microsoft.com/en-us/library/windows/apps/windows.media.playback.mediaplayer.volume.aspx
例如,我有一个视图模型,其中我公开了以下属性,并且我有一个滑块控件的value属性绑定。 (我的滑块的Min为0,其Max为100,这就是为什么我将MediaPlayer的volume属性的0-1值转换为0-100的范围。)
(注意:我还有一个“BackgroundAudioService”单例来包装对背景音频MediaPlayer的引用,就像github演示的UWP示例背景音频项目一样,但它只是对MediaPlayer的引用。)
public double Volume
{
get
{
this.volume = (BackgroundAudioService.Instance.CurrentPlayer.Volume * 100);
return this.volume;
}
set
{
this.volume = value;
BackgroundAudioService.Instance.CurrentPlayer.Volume = (this.volume / 100);
this.RaisePropertyChanged();
}
}
如果这不起作用,可以尝试检查并设置系统的音量,因为此方法仅控制应用的音量。
答案 2 :(得分:0)
我一直在寻找同样的东西,我找到了我想要的东西。所以,我觉得有义务在这里发布(和分享)我的发现。
为了控制整个系统音量,您可以使用Sound Global API
。
ElementSoundPlayer.Volume = 0.5f;
应用程序中的所有声音都可以通过音量控制变暗。但是,应用程序内的声音不能比系统音量大。
答案 3 :(得分:0)
实际上它是记录在案的。
您可以使用IAudioEndpointVolume获取或设置音频设备的音量,就像我们以前在桌面应用中使用的那样,文档指出它在Windows应用商店应用中受支持。
要在UWP应用中为特定设备激活此界面,您需要使用ActivateAudioInterfaceAsync功能。有UWP sample codes显示如何使用此函数激活IAudioClient
接口。您可以对IAudioEndpointVolume
界面执行相同的操作。
最后,目前,此API仅在C ++中可用。如果你想从C#或VB UWP应用程序中执行此操作,可以在C ++ CX中创建一个RuntimeComponent,它将为您的应用程序提供此功能。
答案 4 :(得分:0)
没有必要制作WinRT组件。相反,您可以使用P / Invoke访问win32音频接口。
在C#中查看my code (Gist)如何执行此操作。