【问题标题】:xamarin android webview: video not playing on devicexamarin android webview:视频未在设备上播放
【发布时间】:2015-06-28 15:44:29
【问题描述】:

尝试播放视频,我现在在 Xamarin.Forms XAML 中使用 WebView。

我在 Android 上遇到了很大的问题(这是一个表单项目,它也可以在 iOS 和 WinPhone 上运行),主要是播放本地文件。

为了获得最小的失败版本,我发现即使从网络播放视频也无法正常工作。哦,它(有点 - 至少我能听到音频)在模拟器上工作,但在我的设备上不行,这是三星 Note 1。

我正在做的是

var htmlSource = new HtmlWebViewSource();
html = "<!Doctype HTML><html><body><video controls>   <source src=\"http://techslides.com/demos/sample-videos/small.webm\" type=\"video/webm\">   <source src=\"http://techslides.com/demos/sample-videos/small.ogv\" type=\"video/ogg\">   <source src=\"http://techslides.com/demos/sample-videos/small.mp4\" type=\"video/mp4\">  <source src=\"http://techslides.com/demos/sample-videos/small.3gp\" type=\"video/3gp\"></video></body></html>";
htmlSource.Html = html;
myWebView.Source = htmlSource; 

html是从http://techslides.com/sample-webm-ogg-and-mp4-video-files-for-html5直接复制的(仅格式化和“”)。

在我添加的 AndroidManifest.xml 中

android:hardwareAccelerated="true"

<manifest />

(我也试过false。)

我在 Android 设备上看到的:

网站打开,显示视频控件(虽然只在很小的区域,但它有一个占位符背景)。单击播放,我在调试器中得到一个“handleMessage - PLAY”,但没有任何反应。此外,单击全屏图标,我得到一个“enterFullScreenVideoState called”。在调试器中,但没有任何反应。

补充: 直接在 Android 浏览器中打开 http://techslides.com/sample-webm-ogg-and-mp4-video-files-for-html5 可以工作(我没有预览视频,但是当我点击播放时它会加载),但是设置

myWebView.Source = "http://techslides.com/sample-webm-ogg-and-mp4-video-files-for-html5";

也会产生与我明确设置 HtmlWebViewSource 时相同的不良行为。

应用具有 INTERNET 权限。

出了什么问题,如何解决?

(我知道在 stackoverflow 上有很多关于此的线程,但很多都是 3 到 5 年的历史,没有一个适用于 Xamarin,至少从我目前看到的情况来看是这样。)

【问题讨论】:

  • 你有没有找到答案? here 是解释 Xamarin Android WebView 和播放视频问题的帖子,here 是解释 Xamarin Forms 问题的可能解决方案的帖子。
  • 并非如此。部分问题在于手机,一部 Galaxy Note 1。我记得它在其他品牌上运行得更好。我后来也尝试了 Cordova(通过 Intel XDK)并遇到了类似的问题。不过在花了几天时间之后,我确实停止了。
  • 不过我还是很感激这次更新。

标签: android video webview xamarin xamarin.forms


【解决方案1】:

如果您想在本机播放器中播放视频而不是启动 WebView,您可以查看 Xamarin 组件商店中的视频播放器组件。它允许您在 iOS、Android 和 Windows Phone 上呈现本机视频播放器。下面的代码 sn-p 显示了将其放入并使用它的最简单示例。您还可以连接播放、暂停、停止、完成等事件。您可以控制音量、自动播放和重复播放等。

https://github.com/adamfisher/Xamarin.Forms.VideoPlayer

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:o="clr-namespace:Octane.Xam.VideoPlayer;assembly=Octane.Xam.VideoPlayer"
             x:Class="VideoPlayerSamples.VideoPlayerBasicExamplePage"
             Title="Basic Video Player">

    <o:VideoPlayer Source="http://vjs.zencdn.net/v/oceans.mp4" />

</ContentPage>

免责声明:这是我的组件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-24
    • 2017-12-23
    • 1970-01-01
    • 1970-01-01
    • 2019-08-28
    • 2021-05-30
    • 2012-09-24
    • 2012-12-16
    相关资源
    最近更新 更多