0

StandardStyles.xaml に次のコードがあります。

    <Style  x:Key="RootFrameStyle" TargetType="Frame">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="Frame">
                <Grid>
                    <MediaElement x:Name="MediaPlayer" AudioCategory="BackgroundCapableMedia" />
                    <ContentPresenter />
                </Grid>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

App.Xaml.cs の OnLaunched の次のコード:

...
rootFrame.Style = Resources["RootFrameStyle"] as Style;
...

MainPage.xaml.cs コード:

    PlayToManager playToManager = null;
        CoreDispatcher dispatcher = null;

        private void LayoutAwarePage_Loaded_1(object sender, RoutedEventArgs e)
        {
            if (App.Player == null)
            {
                var rootGrid = VisualTreeHelper.GetChild(Window.Current.Content, 0);
                App.Player = (MediaElement)VisualTreeHelper.GetChild(rootGrid, 0);
                App.Player.Source = new Uri("http://myserverlink.com/mymp3file.mp3");

                App.Player.Play();
            }
        }

protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            dispatcher = Window.Current.CoreWindow.Dispatcher;
            playToManager = PlayToManager.GetForCurrentView();
            playToManager.SourceRequested += playToManager_SourceRequested;
        }

        void playToManager_SourceRequested(PlayToManager sender, PlayToSourceRequestedEventArgs args)
        {
            var deferral = args.SourceRequest.GetDeferral();
            var handler = dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
                {
                    args.SourceRequest.SetSource(App.Player.PlayToSource);
                    deferral.Complete();
                });
        }

Windows 8 でデバイスをクリックすると、PlayTo no devices のデバイスのリストに表示されます。また、MainPage.xaml に MediaElement を追加する場合は、リスト内のデバイス。MediaElement の Style File が必要でしたが、別のページに移動してしまうと音楽の再生が止まりませんでした。何をすべきか?

4

0 に答える 0