Javascript 在Chrome浏览器上的Shining App(R)视频中跳过一帧(使用JS代码)
我编写了一个闪亮的应用程序,它可以显示视频,并有一个按钮可以跳到下一帧。它在Firefox和Edge中运行时可以工作,但在Chrome中失败。视频没有移动到下一帧,而是跳回到开始 在互联网研究之后,Chrome似乎出现了一个我认为无法解决的问题,但是我发现了一个网站,该功能在Chrome中运行,我不知道是什么区别导致我的代码失败 下面是闪亮的应用程序:(注意,我使用了一个名为“test_vid.MP4”的视频,它每秒有29帧,存储在应用程序的“www”文件夹中Javascript 在Chrome浏览器上的Shining App(R)视频中跳过一帧(使用JS代码),javascript,r,google-chrome,shiny,Javascript,R,Google Chrome,Shiny,我编写了一个闪亮的应用程序,它可以显示视频,并有一个按钮可以跳到下一帧。它在Firefox和Edge中运行时可以工作,但在Chrome中失败。视频没有移动到下一帧,而是跳回到开始 在互联网研究之后,Chrome似乎出现了一个我认为无法解决的问题,但是我发现了一个网站,该功能在Chrome中运行,我不知道是什么区别导致我的代码失败 下面是闪亮的应用程序:(注意,我使用了一个名为“test_vid.MP4”的视频,它每秒有29帧,存储在应用程序的“www”文件夹中 library(shiny) li
library(shiny)
library(shinyjs)
# Javascript code to go to a specific time
jsCode <- "shinyjs.vid0 = function(value){
var vid=document.getElementById('v0');
vid.pause();
vid.currentTime=value;}"
# Server
server <- function(input, output, session) {
observeEvent(input$nxt, {
js$vid0(input$vid0_currentTime + 1 / 29) # My video is 29 frames per second
})
}
# UI
ui <- fluidPage(
useShinyjs(),
extendShinyjs(text = jsCode),
sidebarLayout(
sidebarPanel(
actionButton("nxt", "Next frame")
),
mainPanel(
# Update input$vid0_currentTime
tags$script("
document.getElementById('nxt').onclick = function() {
var myVid = document.getElementById('v0');
Shiny.onInputChange('vid0_currentTime', myVid.currentTime);
};
"),
# Video output in HTML
HTML(paste('<center><video id="v0" controls tabindex="0" height = "600px">',
'<source type="video/mp4" ',
paste0('src="test_vid.MP4">'),
'</source></center>'))
)
)
)
shinyApp(ui = ui, server = server)
库(闪亮)
图书馆(shinyjs)
#要转到特定时间的Javascript代码
jsCode