- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我正在尝试让 JWPlayer 在播放本地视频的 Flash 播放器发生一些特定事件时返回警报。如果您从下面的代码中注意到,onComplete,JWPlayer 应该返回一个警报,然后可以由来自 setWebChromeClient 的 onJsAlert 拦截该警报,以便我可以使用该信息进行处理。我做错了吗?
一个可能的原因,我可以在这里找到:JWplayer Javascript interaction not working它正在本地加载。有什么办法可以绕过这个问题吗?通过调用 localhost 以某种方式加载会更容易吗?这可能吗?
对于那些好奇我为什么要生成 HTML 文件而不是仅仅从 Assets 中移动的那些人 - 在搜索 Internet 以弄清楚如何让本地 flv 播放器正常工作之后,最好的选择是生成 HTML包含自定义信息的文件并将文件写入与 FLV 相同的目录(因此是 FileWriter 函数)。
JWPlayer 嵌入的 HTML 代码:
private void createVideoHtml(File flvDirectory, File htmlFile, String videofilename)
{
String htmlPre = "<!DOCTYPE html><html lang=\"en\"><head><meta charset=\"utf-8\"></head><body style='margin:0; padding:0;'>";
String htmlCode =
"<script type='text/javascript' src='"+ flvDirectory.getAbsolutePath() + "/jwplayer.js'></script>" +
"<div id='mediaspace'>EZ Stream TV FLV Player</div>" +
"<script type='text/javascript'>" +
"jwplayer('mediaspace').setup({" +
"'flashplayer': '"+ flvDirectory.getAbsolutePath() + "/player.swf', 'file': '" + videofilename + "', 'backcolor': 'FFFFFF', 'frontcolor': '000000', 'lightcolor': '000000'," +
"'screencolor': '000000', 'volume': '100', 'autostart': 'true', 'mute': 'false', 'quality': 'false', 'controlbar': 'bottom', 'width': '100%', 'height': '100%'," +
"events: { " +
"onComplete: function() { alert('COMPLETED');}" +
"}});" +
"</script>";
String htmlPost = "</body></html>";
String finalHTML = htmlPre + htmlCode + htmlPost;
try {
FileWriter f = new FileWriter(htmlFile);
PrintWriter p = new PrintWriter(f);
p.print(finalHTML);
p.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
webview 和处理 JavaScript 警报的代码:
webView = (WebView)findViewById(R.id.web_player);
webView.getSettings().setBuiltInZoomControls(false);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setLoadsImagesAutomatically(true);
webView.getSettings().setPluginsEnabled(true);
webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
webView.getSettings().setAllowFileAccess(true);
webView.setInitialScale(60);
webView.setBackgroundColor(Color.BLACK);
getWindow().addFlags(128);
webView.getSettings().setUserAgentString("Mozilla/5.0 (Windows; U; Windows NT 6.1; en-GB; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 (.NET CLR 3.5.30729)");
webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
webView.setWebChromeClient(new WebChromeClient() {
@Override
public boolean onJsAlert(WebView view, String url, String message, final android.webkit.JsResult result)
{
Log.d(TAG, message);
new AlertDialog.Builder(view.getContext()).setMessage(message).setCancelable(true).show();
result.confirm();
return true;
}
});
最佳答案
JWPlayer转Webview可以引用下面的代码
private void createVideoHtml(File flvDirectory, File htmlFile, String videofilename)
{
String htmlPre = "<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"></head><body style='margin:0; padding:0;'>";
String htmlCode =
"<script type='text/javascript' src='"+ flvDirectory.getAbsolutePath() + "/jwplayer.js'></script>" +
"<div id='mediaspace'>EZ Stream TV FLV Player</div>" +
"<script type='text/javascript'>" +
"jwplayer('mediaspace').setup({" +
"'flashplayer': '"+ flvDirectory.getAbsolutePath() + "/player.swf', 'file': '" + videofilename + "', 'backcolor': 'FFFFFF', 'frontcolor': '000000', 'lightcolor': '000000'," +
"'screencolor': '000000', 'volume': '100', 'autostart': 'true', 'mute': 'false', 'quality': 'false', 'controlbar': 'bottom', 'width': '100%', 'height': '100%'," +
"events: { " +
"onComplete: function() { alert('COMPLETED');}" +
"}});" +
"</script>";
String htmlPost = "</body></html>";
String finalHTML = htmlPre + htmlCode + htmlPost;
try {
FileWriter f = new FileWriter(htmlFile);
PrintWriter p = new PrintWriter(f);
p.print(finalHTML);
p.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
webView = (WebView)findViewById(R.id.web_player);
webView.getSettings().setBuiltInZoomControls(false);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setLoadsImagesAutomatically(true);
webView.getSettings().setPluginsEnabled(true);
webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
webView.getSettings().setAllowFileAccess(true);
webView.setInitialScale(60);
webView.setBackgroundColor(Color.BLACK);
getWindow().addFlags(128);
webView.getSettings().setUserAgentString("Mozilla/5.0 (Windows; U; Windows NT 6.1; en-GB; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 (.NET CLR 3.5.30729)");
webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
webView.setWebChromeClient(new WebChromeClient() {
@Override
public boolean onJsAlert(WebView view, String url, String message, final android.webkit.JsResult result)
{
Log.d(TAG, message);
new AlertDialog.Builder(view.getContext()).setMessage(message).setCancelable(true).show();
result.confirm();
return true;
}
});
关于javascript - JWPlayer Javascript API for Android Webview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7003433/
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
我正在使用 JWPlayer 并将 .smil 源和 .m3u8 源传递给构造函数: var player = jwplayer("jwplayer-container"); player.setup
我按照以下教程进行操作: http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/TutorialStreamingJWPl
我有 jwplayer 6,我想禁用 jwplayer 时间 slider 。有谁知道我如何禁用它的功能 最佳答案 我们可以创建新皮肤或编辑当前自定义皮肤以删除时间 slider 。 以下xml元素处
我使用的是jwplayer 6,当视频播放时jwplayer会隐藏控制栏,只有当我们暂停视频时它才会显示控制栏。 我尝试了设置选项: jwplayer("jwplayer").setup({
我有兴趣添加一个下载视频按钮,类似于此处的按钮 - http://support.jwplayer.com/customer/portal/articles/1436999-example-addin
我必须在弹出窗口中显示 jwplayer,对于我使用 ngDialog(angular) 的弹出窗口,ngDialog 的代码如下: $scope.showVideoPlayerPopup = fun
我尝试让 jwplayer 在 android 手机上工作,当我放置 rtsp 协议(protocol)文件源时它在 android 中工作正常,但显示文件无法在 iOS 和 PC 中播放的错误 没有
使用代码: jwplayer('myPlayer').setup({ file: '/somefile.mp4', 'controlbar': 'none', 'autostart': 'true',
当更改页面上的视频文件时,我认为 jwplayer().file(embedurl); (或类似)会很好,并且嵌入的所有先前属性都会是保存下来。但是,我似乎找不到类似的东西,并且文档表明我必须重新设置
我有一个视频,需要在页面加载后立即开始播放(这是最简单的部分)。 我还可以将视频控制栏设置为“自动隐藏”,但我希望它最初是不可见的,因为它在视频开始时看起来非常困惑。 (我还有自己的按钮对应于视频中的
有谁知道如何让 JW PLayer v5.4(Flash 渲染或 HTML5 渲染)在 seek() 命令后暂停? 当用户单击细粒度控制按钮(或使用向左或向右箭头键)时,我试图让视频向前或向后步进 0
我需要在我的expressJS、AngularJS 项目中使用JWPlayer 6 和JWPlayer 7。通常情况下,它们每个单独工作都很好。 我将它们单独包含在index.html中 OR
有人可以帮我将这个 JWPlayer 5 代码转换为 JWPlayer 6 代码吗?该脚本本质上为桌面创建 RTMP 流,为非闪存设备创建 HLS 流。 如果流媒体源不可用,将播放 .mp4 文件。
我开始使用 JW Player Free 5.9 开发我的网络电视。 我使用 Symfony2 作为使用动态路由的 PHP 框架,现在我必须下载播放器的第 6 个版本。 当我加载页面时,播放器无法工作
其实我的后面是Wowza。它为我的应用程序提供了以下流: http://.................../mychannel/playlist.m3u8 rtmp://.............
我喜欢新的 jwplayer 6,而且我有商业版本,这样我就可以给它贴上品牌标签。我使用版本 5 得到了我想要的一切(包括捕获“onplaylistITme”事件) - 但现在是时候迁移到版本 6 以
我想让每个人都能观看 flash(flv) 格式,如果他们没有 flash,他们会看到 html5(mp4/m4v) 视频。 我使用的是 JWPlayer 5,但由于一些错误,我需要将其更改为 JWP
我正在将 jwplayer 用于我的一个项目。现在要求指出播放器应附加“前进”和“后退”按钮,以便轻松浏览视频。 我查看了文档,但除了“寻求”之外没有找到任何东西。 希望收到你们的来信。 最佳答案 对
我有一个网站,我使用 jwplayer 向访问者显示流。 我想知道是否有办法在流结束时用 jwplayer 中的图像替换视频而不是该错误消息? 最佳答案 当然。 http://support.jwpl
我是一名优秀的程序员,十分优秀!