[英]How to live stream a .m3u8 video file in Xamarin.Forms
(Xamarin.Forms 的新手)我想在我的 Xamarin.Forms 应用程序中直播.m3u8 视频文件吗?
这是来自微软的文档
“但是,VideoPlayer 没有可用的流选项,因为 iOS 和 Android 不支持从流中播放视频。”
[来自“视频源”标题正上方的段落]
可能吗? 我有哪些选择?
这是我第一次需要播放视频,我搜索了一些库并找到了 Xamarin.MediaManager 但它在 iOS 上抛出异常(在初始化视频播放器时)并且在 Android 上也没有播放 m3u8 文件(它正在播放带有 https url 的 mp3 和 mp4 文件)
所以我决定使用 Xamarin.Forms 文档中给出的视频播放器自定义渲染器
除了上面链接的文档之外,这是我遵循的VideoPlayer 演示/教程。
XAML 中的 VideoPlayer
<video:VideoPlayer VerticalOptions="FillAndExpand"
HorizontalOptions="FillAndExpand"
BackgroundColor="Black"
HeightRequest="200"
Margin="0,0,0,0"
x:Name="FormsVideoPlayer"/>
这就是我设置源的方式
FormsVideoPlayer.Source = new UriVideoSource
{
Uri = url
};
FormsVideoPlayer.Play();
找到解决方案:
我通过在我的笔记本电脑上生成它们来获取实时流的视频 URL。 我使用的服务以某种方式将它们与 PC 绑定(假设)。
我不知道如何,但视频只能在生成 URL 的笔记本电脑上播放(在我向应用程序添加 UWP 项目后发现)
=>> 一旦我开始从应用程序本身生成 URL,视频就开始工作了。
现在我使用 CrossMediaManager 使用下面的代码来处理 HLS 视频:
if (isHLS)
{
var item = await CrossMediaManager.Current.MediaExtractor.CreateMediaItem(URL);
item.MediaType = MediaManager.Media.MediaType.Hls;
CrossMediaManager.Current.MediaPlayer.VideoView.ShowControls = false;
await CrossMediaManager.Current.Play(item);
}
else
{
await CrossMediaManager.Current.Play(URL);
}
Xaml:
<ContentPage.Content>
<mm:VideoView VerticalOptions="FillAndExpand"
HorizontalOptions="FillAndExpand"
BackgroundColor="Black"
x:Name="mmVideoView"
/>
</ContentPage.Content>
以防万一有人遇到类似的问题
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.