- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我无法通过 YouTube Player API 的 getDuration() 方法获得加载/提示视频的正确视频持续时间/长度(以秒为单位);但是,同样的方法会在视频开始播放后返回一个有效值!想知道 YouTube 如何能够显示加载/提示视频的有效持续时间。
当我用 15 秒的视频剪辑加载此 HTML 页面时,我得到以下调试输出:
状态 = 5 持续时间 = -0.000025
当我点击“播放”按钮时,我得到以下调试输出:
状态 = 3 持续时间 = 15,
非常感谢解决方案或解决方法。加载、立即播放和暂停播放器不是我最喜欢的方法。
<html>
<head>
<script type="text/javascript">
var videoId;
videoId = 'http://www.youtube.com/v/4TSJhIZmL0A'; // bbc
// videoId = 'http://www.youtube.com/v/ezwyHNs_W_A'; // physics
function $(id) {
return document.getElementById(id);
}
</script>
<script src="http://www.google.com/jsapi"></script>
<script>
google.load("swfobject", "2.1");
</script>
</head>
<body>
<table>
<tr><td>
<div id="player">
You need Flash player 8+ and JavaScript enabled to view this video.
</div>
<script>
var ytplayer;
function myOnPlayerStateChange(state) {
switch(state) {
case 1: // playing
$("out").innerHTML += " playing";
break;
case 2: // paused
$("out").innerHTML += " paused";
break;
case 0: // ended
$("out").innerHTML += " ended";
break;
case -1: // unstarted
case 3: // buffering
case 5: // cued
$("out").innerHTML += " state = " + state;
break;
default: // unknown
$("out").innerHTML += " state = " + state;
break;
}
$("out").innerHTML += " duration = " + ytplayer.getDuration() + ",";
}
function myOnPlayerError(errorCode) {
$("out").innerHTML += " Error occurred: " + errorCode;
}
function onYouTubePlayerReady(playerId) {
ytplayer = ytplayer || $(playerId);
ytplayer.addEventListener("onStateChange", "myOnPlayerStateChange");
ytplayer.addEventListener("onError", "myOnPlayerError");
}
var params = { allowScriptAccess: "always", bgcolor: "#cccccc" };
var atts = { };
swfobject.embedSWF(videoId + "?border=0&enablejsapi=1&playerapiid=" + 'player', 'player', 425, 344, "8", null, null, params, atts);
</script>
</td></tr>
</table>
<div id="out"></div>
<div id="err"></div>
</body>
</html>
最佳答案
您可以使用 YouTube 数据 API 访问有关视频的大部分信息,包括持续时间:
<script type="text/javascript">
function youtubeFeedCallback(json){
document.write(json["data"]["duration"] + " second(s)");
}
</script>
<script type="text/javascript" src="http://gdata.youtube.com/feeds/api/videos/4TSJhIZmL0A?v=2&alt=jsonc&callback=youtubeFeedCallback&prettyprint=true"></script>
在使用 jQuery 时,您可以使用 $.getJSON()
来简化操作。
似乎 YouTube JavaScript API v3 允许您在 onYouTubePlayerReady()
事件中获取正确的持续时间。您需要做的就是在调用 swfobject.embedSWF()
方法时传递 &version=3
。
关于javascript - YouTube 播放器 API : How to get duration of a loaded/cued video without playing it?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2086260/
关闭。这个问题需要details or clarity .它目前不接受答案。 想改进这个问题吗? 通过 editing this post 添加细节并澄清问题. 关闭 9 年前。 Improve t
由于cuda的“.cu”文件基本上是c,是否有办法使用doxygen生成“.cu”文件的文档?我注意到NVIDIA使用doxygen生成cuda的文档。但是,当我使用doxygen时,“。cu”文件将
标准约定似乎是给CUDA源代码文件一个.cu扩展名,以将它们与具有.c扩展名的C文件区分开。特定于CUDA的头文件的对应约定是什么?有一个吗? 最佳答案 某些人(包括CUDA SDK)对CUDA头文件
我希望编译后的 CUDA 代码能够在任何 Nvidia GPU 上运行,因此我使用以下选项编译每个 .cu 文件: -gencode arch=compute_20,code=sm_20 -genco
我希望编译后的 CUDA 代码能够在任何 Nvidia GPU 上运行,因此我使用以下选项编译每个 .cu 文件: -gencode arch=compute_20,code=sm_20 -genco
两个事实: CUDA 5.0 允许您在不同的目标文件中编译 CUDA 代码,以便稍后进行链接。 CUDA 架构 2.x 不再自动内联函数。 像往常一样在 C/C++ 中,我实现了一个函数 __devi
我有一个包含 cuda 文件的 visual studio c++ 项目(使用 VS 2010 和 insight 2)。这是代码 你好.h : #pragma once #pragma warnin
我想获取 HEVC HM 解码器上的 CU/PU 级别信息。我还想获得一些统计数据,以了解解码不同类型的 CU(帧内、帧间 - 单向/双向)平均需要多少时间。 HM 编码器中现有的调试是不合适的,因为
我正在使用 cu 实用程序将我的 Cubieboard 1 连接到我的笔记本电脑。当我启动我的 Cubieboard 时,它会将启动日志发送到我的终端。 我想要的是输出应该显示在我的屏幕上并发送到我指
这个问题已经有答案了: pandas select from Dataframe using startswith (5 个回答) 已关闭 3 年前。 这似乎是直截了当的事情,但找不到合适的答案。 我
我想在 cu 命令中执行“sw i01”并退出 cu(使用“~.”) 在一行或文件 bash 中,因为 il 会从远处执行它们服务器 在这张图片中我放了: cu -s 19200 -l /dev/tt
我想知道 .cu 编译单元中隐式包含了哪些 header 。例如,让我们举一些基本的例子: #include __global__ void kernel(int a, int b, int *c)
我最近将 CU9 安装到 BizTalk 2010。Microsoft 网站 (https://support.microsoft.com/en-us/kb/3136004) 声称所有以前的 CU 都
我有两个 cuda 文件,分别是 A 和 B。我需要从 A 到 B 调用一个函数,比如.. __device__ int add(int a, int b) //this is a function
我有以下文件: // Main.cpp #include "kernel_util.cuh" int main() { call_kernel(); } // kernel_util.cuh
我正在尝试使用 cu 通过 ttyS0 与另一个 UNIX 设备进行通信(谷歌“cu unix”以了解有关 cu 的更多信息)。我的程序运行得很好,但问题是,在第一次执行程序(建立连接、读取日志文件和
我正在学习使用 CUDA。我写了两个 .cu 文件,一个包含主要功能,另一个用作提供所有其他功能的库。但是我在编译这两个 .cu 文件时遇到了多个定义错误。我展示了一个玩具示例如下: main.cu
我正在尝试将 SigmoidCrossEntropyLossLayer 修改为我自己的版本。我只实现了 .cpp 版本。已经有一个 SigmoidCrossEntropyLossLayer 的 .cu
如何将 cuda 内核代码和项目中的其他 cpp 代码分开?我想将所有内核定义收集在一个文件中,因为其他 cpp 文件在需要时调用它们。我试图在 kernel.cu 中编写所有内核并通过包含 kern
我换了一个新的 GPU GeForce GTX 980 cc 5.2,所以它必须支持动态并行。但是,我什至无法编译一个简单的代码(来自编程指南)。我不会在这里提供它(没有必要,只是有一个全局内核调用另
我是一名优秀的程序员,十分优秀!