使用MediaPlayerElement将视频投射到电视

时间:2017-05-28 13:23:01

标签: c++ uwp

我有以下XAML

<MediaPlayerElement x:Name="EmbeddedPlayer" AreTransportControlsEnabled="True" HorizontalAlignment="Stretch" IsDoubleTapEnabled="True" DoubleTapped="OnEmbeddedPlayerDoubleTapped"> </MediaPlayerElement>

根据this official documentation,我应该可以使用可用的投射按钮将视频投射到我的电视上。 电影&amp;电视应用程序可以做到这一点:当我点击该应用程序中的投射按钮时,它会列出可用的目标。但是,当我为我的应用程序执行相同的操作时,它会要求我确保设备是可发现的,并且没有进度环指示设备搜索/发现正在进行。 (我在Lumia 635上。)再一次,我感到文件和现实之间不匹配的挫败感!

是否有完整的视频/音频播放工作示例?

编辑:我在文章中提供了第三种设备发现方法后添加了简化代码:

using namespace Windows::Devices::Enumeration;

MainPage::MainPage()
{
     // Other set up
     DeviceWatcher ^deviceWatcher;
     CastingConnection ^castingConnection;
     //Create our watcher and have it find casting devices capable of video casting
     deviceWatcher = DeviceInformation::CreateWatcher(CastingDevice::GetDeviceSelector(CastingPlaybackTypes::Video));

    //Register for watcher events
    deviceWatcher->Added += ref new TypedEventHandler<DeviceWatcher^, DeviceInformation^>(this, &MainPage::DeviceWatcher_Added);

    deviceWatcher->Start();
}

void MainPage::DeviceWatcher_Added(Windows::Devices::Enumeration::DeviceWatcher^ sender, Windows::Devices::Enumeration::DeviceInformation^ args)
{
    Dispatcher->RunAsync(Windows::UI::Core::CoreDispatcherPriority::Normal, ref new DispatchedHandler([args]()
    {
        //Add each discovered device to our listbox
    create_task(CastingDevice::FromIdAsync(args->Id)).then([](CastingDevice^ addedDevice)
    {
        OutputDebugString(("Found cast device " + addedDevice->FriendlyName + "\n")->Data());
    }, task_continuation_context::use_current());
    //castingDevicesListBox.Items.Add(addedDevice);
    }));
}

正如我所料,没有发现任何设备。可能会有一些额外的步骤来处理从未在文档中指定的权限(允许应用程序发现和转换为设备)等。

1 个答案:

答案 0 :(得分:0)

与文档相反,我们不得使用MediaPlayerElement,但不得使用已弃用的MediaElement进行移动投放。此提示取自https://social.msdn.microsoft.com/Forums/en-US/0c37a74f-1331-4fb8-bfdf-3df11d953098/uwp-mediaplayerelement-mediacasting-is-broken-?forum=wpdevelop

这也解决了problem I previously asked关于全屏显示视频的问题:全屏幕就像移动设备上MediaElement的魅力一样;但不是假设升级后的MediaPlayerElement

鉴于微软已经放弃了Windows 10 Mobile,我应该已经意识到这个显而易见的事实。