在 Tizen.NET Xamarin 应用程序上播放 HDHomeRun 流
Playing an HDHomeRun stream on a Tizen.NET Xamarin App
我正在尝试从 url 以下列格式播放 HDHomeRun Connect 视频源:http://x.x.x.x:xxxx/auto/v4.1。此视频源是MPEG2视频编码和AC3音频编码。
我试过将三星 Tizen.TV .NET 示例与以下来源一起使用,但视频从未播放过。
_player = new Tizen.Multimedia.Player();
var mediaSource = new Multimedia.MediaUriSource(uri);
_player.SetSource(mediaSource);
var display = new Multimedia.Display(Window.Instance);
_player.Display = display;
await _player.PrepareAsync();
播放器状态卡在准备中,await _player.PrepareAsync()
调用永远不会完成。值得注意的是,我使用的是 Tizen Samsung TV Emulator。我是否需要对来自 HDHomeRun 的流进行转码才能播放?为了播放视频,我可能还缺少任何其他措施吗?
最终,播放器的显示 属性 设置不正确。对我有用的 属性(通过调查 JuvoPlayer code 发现是这样的:
var display = new Multimedia.Display(((FormsApplication)Forms.Context).MainWindow);
_player.Display = display;
当您要开发 Tizen .NET 应用程序时,请注意您的项目针对 3 种不同类型中的哪个 UI 框架:Xamarin.Forms、(纯)ElmSharp 和 Tizen.NUI.
除非您的项目基于 Tizen.NUI 框架,否则您不应在任何情况下使用 Tizen.NUI.Window.Instance
和 Tizen.NUI
命名空间中的类型。相反,您必须在应用程序中为 platform-specific 代码使用 ElmSharp
或 Xamarin.Forms.Platform.Tizen
命名空间类型。
由于 Xamarin.Forms for Tizen 的内部实现基于 ElmSharp,FormsApplication.MainWindow
将 return 一个 ElmSharp.Window
实例,可用于实例化 Tizen.Multimedia.Display
对象。这就是您答案中的代码起作用的原因。
我正在尝试从 url 以下列格式播放 HDHomeRun Connect 视频源:http://x.x.x.x:xxxx/auto/v4.1。此视频源是MPEG2视频编码和AC3音频编码。
我试过将三星 Tizen.TV .NET 示例与以下来源一起使用,但视频从未播放过。
_player = new Tizen.Multimedia.Player();
var mediaSource = new Multimedia.MediaUriSource(uri);
_player.SetSource(mediaSource);
var display = new Multimedia.Display(Window.Instance);
_player.Display = display;
await _player.PrepareAsync();
播放器状态卡在准备中,await _player.PrepareAsync()
调用永远不会完成。值得注意的是,我使用的是 Tizen Samsung TV Emulator。我是否需要对来自 HDHomeRun 的流进行转码才能播放?为了播放视频,我可能还缺少任何其他措施吗?
最终,播放器的显示 属性 设置不正确。对我有用的 属性(通过调查 JuvoPlayer code 发现是这样的:
var display = new Multimedia.Display(((FormsApplication)Forms.Context).MainWindow);
_player.Display = display;
当您要开发 Tizen .NET 应用程序时,请注意您的项目针对 3 种不同类型中的哪个 UI 框架:Xamarin.Forms、(纯)ElmSharp 和 Tizen.NUI.
除非您的项目基于 Tizen.NUI 框架,否则您不应在任何情况下使用 Tizen.NUI.Window.Instance
和 Tizen.NUI
命名空间中的类型。相反,您必须在应用程序中为 platform-specific 代码使用 ElmSharp
或 Xamarin.Forms.Platform.Tizen
命名空间类型。
由于 Xamarin.Forms for Tizen 的内部实现基于 ElmSharp,FormsApplication.MainWindow
将 return 一个 ElmSharp.Window
实例,可用于实例化 Tizen.Multimedia.Display
对象。这就是您答案中的代码起作用的原因。