Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MediaElement音量-速度_C#_Vb.net_Uwp - Fatal编程技术网

C# MediaElement音量-速度

C# MediaElement音量-速度,c#,vb.net,uwp,C#,Vb.net,Uwp,我正在使用MediaElement构建一个UWP应用程序 我希望能够更改MediaElement的音量和播放速度,但我的代码无法正常工作。 如果我在第一次播放前设置音量和速度,但如果我在播放后更改音量,则不会更改音量。 我的代码: 作为MediaElement的私有融合 私有异步子主页加载(发送方作为对象,e作为RoutedEventArgs)处理我。加载 MELENT=新媒体元素 AddHandler mElement.MediaEnded,地址为OnMediaEnded 端接头 异步函数sa

我正在使用
MediaElement
构建一个UWP应用程序
我希望能够更改
MediaElement
的音量和播放速度,但我的代码无法正常工作。
如果我在第一次播放前设置音量和速度,但如果我在播放后更改音量,则不会更改音量。

我的代码:

作为MediaElement的私有融合
私有异步子主页加载(发送方作为对象,e作为RoutedEventArgs)处理我。加载
MELENT=新媒体元素
AddHandler mElement.MediaEnded,地址为OnMediaEnded
端接头
异步函数saysync(ByVal文本作为字符串)作为任务
如果Synth什么都不是,那么
Dim chosenVoice=SpeechSynthesizer.AllVoices.First(函数(v)v.DisplayName.Contains(cboVoice.SelectedItem.ToString))
Synth=newspeechsynthesizer(),带有{.Voice=chosenVoice}
如果结束
currentStream=Await Synth.SynthezeTextToStreamAsync(文本)
mElement.音量=演讲音量/100
mElement.PlaybackRate=SpeechSpeed/100
mElement.SetSource(currentStream,String.Empty)
mElement.Play()
端函数
私有Sub-OnMediaEnded(ByVal发送方作为对象,ByVal e作为RoutedEventArgs)
currentStream?.Dispose()
currentStream=无
端接头

通过在我这边进行测试,可以在播放音频时正确地更改。由于您的代码片段只是整个过程的一部分,下面是一个完整的演示,在我这方面可以很好地工作:

XAML

可能的原因是,在创建了
MediaElement
后,您没有将其添加到XAML中。如果你仍然有问题,请提供一个最低限度的复制项目


顺便说一句,在Windows 10、build 1607或更高版本以及以后的版本中,我们建议您使用代替
MediaElement

非常感谢您的帮助。它不起作用的原因是我没有像你说的那样将MediaElement添加到XAML中。现在它工作了,我已经升级了我的代码,使用MediaPlayerElement而不是MediaElement
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}" x:Name="rootgrid"> 
   <Button x:Name="btnstart" Click="btnstart_Click" Content="start play"></Button>
   <Button x:Name="btnchangevolume" Click="btnchangevolume_Click" Content="change volume to 50" Margin="100"></Button>
</Grid>