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>