简体   繁体   中英

How to use “MediaTransportControls” for mediaElement on VS 2015 RC?

<MediaElement x:Name="media" Source="/Assets/Drag MS-A.mp3" Width="500" Height="400" AutoPlay="False" MediaOpened="media_MediaOpened" CurrentStateChanged="media_CurrentStateChanged"></MediaElement>
<MediaTransportControls x:Name="control"  VerticalAlignment="Bottom" IsFastForwardButtonVisible="True" IsStopButtonVisible="False" IsPlaybackRateButtonVisible="False" IsVolumeButtonVisible="False"></MediaTransportControls>

I really don't found tutorial out. I just saw "SystemMediaTranportsControl" tutorial but still not playing. How to use "MediaTransportControls" for mediaElement on VS 2015 RC?.Everyone help me write this part. Thanks

SystemMediaTransportControls systemControls;


    public MainPage()
    {
        this.InitializeComponent();
        // Hook up app to system transport controls.
        systemControls = SystemMediaTransportControls.GetForCurrentView();
        systemControls.ButtonPressed += SystemControls_ButtonPressed;

        // Register to handle the following system transpot control buttons.


    }

    private void SystemControls_ButtonPressed(SystemMediaTransportControls sender, SystemMediaTransportControlsButtonPressedEventArgs args)
    {
        //throw new NotImplementedException();
        switch (args.Button)
        {
            case SystemMediaTransportControlsButton.Play:
                PlayMedia();
                break;
            case SystemMediaTransportControlsButton.Pause:
                PauseMedia();
                break;
            default:
                break;
        }

    }
    async void PlayMedia()
    {
        await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
        {
            media.Play();
        });
    }

    async void PauseMedia()
    {
        await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
        {
            media.Pause();
        });
    }


    private void media_MediaOpened(object sender, RoutedEventArgs e)
    {

    }

    private void media_CurrentStateChanged(object sender, RoutedEventArgs e)
    {
        switch (media.CurrentState)
        {
            case MediaElementState.Playing:
                systemControls.PlaybackStatus = MediaPlaybackStatus.Playing;
                break;
            case MediaElementState.Paused:
                systemControls.PlaybackStatus = MediaPlaybackStatus.Paused;
                break;
            case MediaElementState.Stopped:
                systemControls.PlaybackStatus = MediaPlaybackStatus.Stopped;
                break;
            case MediaElementState.Closed:
                systemControls.PlaybackStatus = MediaPlaybackStatus.Closed;
                break;
            default:
                break;
        }

    }

Your MediaTransportControls need be inside of MediaElement

<MediaElement x:Name="mediaElement1" Source="ms-appx:///Assets/audio.wma"
              AreTransportControlsEnabled="True">
    <MediaElement.TransportControls>
        <MediaTransportControls IsCompact="True"/>
    </MediaElement.TransportControls>
</MediaElement>

You can read more there

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM