gpt4 book ai didi

c# - jwplayer getDuration 在 chrome 控制台中有效,但在 C# 中与 IJavaScriptExecutor 无效

转载 作者:行者123 更新时间:2023-11-30 17:24:43 25 4
gpt4 key购买 nike

我在使用 jwplayers getDuration 命令时遇到问题。我目前最好的猜测是,这可能是 C# 的 javascript 执行程序的翻译问题。谢谢大家。

这是失败的 C# 代码:

IJavaScriptExecutor executor = ( IJavaScriptExecutor )Driver;
executor.ExecuteScript( "jwplayer().seek(jwPlayer().getDuration());", "" );

这是在 Chrome 控制台中运行的 Javascript。

jwplayer().seek(jwPlayer().getDuration())

此代码有效。

executor.ExecuteScript( "jwplayer().seek(45);", "" );

此代码失败。

executor.ExecuteScript( "jwplayer().getDuration();", "" );

我收到的错误是:

unknown error: Runtime.evaluate threw exception: TypeError: Cannot read property 'click' of null

( session 信息:chrome=35.0.1916.153) (驱动信息: chromedriver=2.10.267521,platform=Windows NT 6.1 SP1 x86_64)

最佳答案

我不确定执行者解释和返回是否有问题。

但是我在尝试在 Jwplayer 中获取持续时间时也遇到了一些问题,并且发现如果你 jwplayer().getDuration 只有在诸如此类的事件中使用时才能正常工作作为 onReadyonPlayonTime。如果您尝试在玩家准备好之前在外面使用它,它不会返回任何东西。

为了理解它是如何工作的,我创建了四个 Jwplayer 有和没有 events

您可以体验行为 here

jsfiddle - http://jsfiddle.net/hiteshbhilai2010/6YyXH/20/

下面还有 JSfiddle 中使用的相同代码

jwplayer('player').setup({

file: 'http://video-js.zencoder.com/oceans-clip.mp4',
primary:'html5',
stretching: 'exactfit',
autostart: true,

});

jwplayer('player2').setup({

file: 'http://video-js.zencoder.com/oceans-clip.mp4',
primary:'html5',
stretching: 'exactfit',
autostart: true,

});
jwplayer('player3').setup({

file: 'http://video-js.zencoder.com/oceans-clip.mp4',
primary:'html5',
stretching: 'exactfit',
autostart: true,

});
jwplayer('player4').setup({

file: 'http://video-js.zencoder.com/oceans-clip.mp4',
primary:'html5',
stretching: 'exactfit',
autostart: true,

});
var time1 = jwplayer('player').getDuration();
$("#player_time1").text(time1);//wont show anything at all

jwplayer('player2').onReady(function(){
var time2 = jwplayer('player2').getDuration();
$("#player_time2").text(time2);//will show time duration as -1

});

jwplayer('player3').onPlay(function(){
var time3 = jwplayer('player3').getDuration();
$("#player_time3").text(time3);//will show time duration as -1
// but if click on play and pause it will show correct time
});

jwplayer('player4').onTime(function(){

var time4 = jwplayer('player4').getDuration();
var time45 = jwplayer('player4').getPosition()
$("#player_time4").text(time4);//it works
$("#player_time45").text(time45);//it works
});

希望它能提供一些有用的信息:)

关于c# - jwplayer getDuration 在 chrome 控制台中有效,但在 C# 中与 IJavaScriptExecutor 无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24497672/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com