2

次のようなxamlページに動的ボタンとともに動的メディア要素を作成しています。

MediaElement audioElement= new MediaElement();
audioElement.Source = new Uri(ApplicationData.Current.RoamingFolder.Path + "\\"+ audioFileName, UriKind.RelativeOrAbsolute);
audioElement.AutoPlay = false;
audioElement.Volume = 1;

次に、ボタンをクリックしてオーディオを再生します。

 audioElement.Play();

ソースが異なる複数のメディア要素があるため、以前に再生していたすべてのメディア要素を停止し、一度に 1 つのオーディオのみを再生する方法。

4

1 に答える 1

0

再生ボタンのクリック時にソースを割り当てることにより、グローバル MediaElement を使用し、同じメディア要素を再生および一時停止することで、この問題を修正しました。

お役に立てれば。

if (null != audioPlayerElement.Source)
                    {
                        audioPlayerElement.Stop();
                        FrameworkElement elem = this.ContentPanel.FindName(audioPlayerElement.Tag.ToString()) as FrameworkElement;
                        RelativePanel audioPanel = elem as RelativePanel;

                        Button playButton = (from im in audioPanel.Children.OfType<Button>() select im).FirstOrDefault();
                        playButton.Tag = "PAUSED";
                        ImageBrush backgroundImage = new ImageBrush();
                        backgroundImage.ImageSource = new BitmapImage(new Uri(@"ms-appx:///Assets/Video_Play_button.png"));
                        backgroundImage.Stretch = Stretch.None;
                        playButton.Background = backgroundImage;

                        Slider prevSlider = (from im in audioPanel.Children.OfType<Slider>() select im).FirstOrDefault();
                        prevSlider.Value = 0;
                    }

audioPlayerElement = audioElement;

ローカル メディア要素をグローバル メディア要素に再度割り当てます。

于 2015-08-08T08:10:59.467 に答える