我多次遇到这个问题,但直到我正在做的这件事之前,我并没有太担心。但是现在我真的需要删除自动播放,因为这个音频只能在用户交互上播放,而不是在页面加载开始时播放。
属性,并且不能在屏幕加载时更改或分配,因为它是MediaPlayer CurrentState。这是非常恼人和IDK为什么它不工作。AutoPlay="false"和声音仍然在页面加载开始时播放。
我的元素是看不见的,因为它只需要播放声音,没有人需要看到它。如果你有其他的方法来做,请在评论中建议,我会尝试。
<xct:MediaElement x:Name="mediaPlayer"
Source="{Binding WordSoundSource}"
IsVisible="false"
AutoPlay="false"/>更新
如果我在开始时添加构造函数mediaPlayer.Stop()来停止元素的播放,那么在用户点击任何游戏的play事件上,这是非常恼人的。
这就是我如何在用户点击包含Image.GestureRecognizers && TapGestureRecognizer的图像时处理Image.GestureRecognizers&&TapGestureRecognizer
<Image Source="sound_icon.png"
VerticalOptions="CenterAndExpand"
HorizontalOptions="EndAndExpand"
HeightRequest="40"
WidthRequest="40"
Margin="0, 10, 80, 0">
<Image.GestureRecognizers>
<TapGestureRecognizer x:Name="ReplaySound"
NumberOfTapsRequired="1"
Tapped="ReplaySound_Tapped"/>
</Image.GestureRecognizers>
</Image>private void ReplaySound_Tapped(object sender, EventArgs e)
{
if (mediaPlayer.CurrentState == MediaElementState.Stopped ||
mediaPlayer.CurrentState == MediaElementState.Paused)
{
mediaPlayer.Play();
}
}在GitHub上也有一篇关于这是一个bug的帖子,但这是一年前的事了.我想知道这是不是同一件事?
提前谢谢。
发布于 2022-10-06 12:12:11
去年我有过这个问题,解决这个问题的唯一可能方法是在默认情况下将速度设置为0,然后在需要播放时将其设置为1。
<MediaElement
x:Name ="vidPlayer"
Source="ms-appx:///XamarinForms101UsingEmbeddedImages.mp4"
Speed="0"
ShowsPlaybackControls="True"
.
.
.
/>然后在播放时将其更改为1:
vidPlayer.Speed= 1.0;https://stackoverflow.com/questions/73973087
复制相似问题