我有以下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);
}));
}
正如我所料,没有发现任何设备。可能会有一些额外的步骤来处理从未在文档中指定的权限(允许应用程序发现和转换为设备)等。
答案 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,我应该已经意识到这个显而易见的事实。