jwplayer getDuration在chrome控制台工作,但不能在c#与IJavaScriptExecutor

本文关键字:但不能 IJavaScriptExecutor 工作 getDuration chrome 控制台 jwplayer | 更新日期: 2023-09-27 18:10:48

我使用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 info: chrome=35.0.1916.153)(Driver info: chromedriver=2.10.267521,platform=Windows NT 6.1 SP1 x86_64)

jwplayer getDuration在chrome控制台工作,但不能在c#与IJavaScriptExecutor

我不确定这是否是执行器解释和返回的问题。

但是我也面临着一些问题,而试图在Jwplayer中获得时间持续时间,并发现如果你jwplayer().getDuration只有在onReady, onPlayonTime等内部事件中使用才能正常工作。如果你试图在玩家准备好之前使用它,它将不会返回任何东西。

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

您可以在

中体验这里的行为

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 
});

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

相关文章: