我正在学习如何使用Rstudio中的Shiny包在网上上传视频。以下是我的ui.R代码
library(shiny)
shinyUI(fluidPage(
headerPanel("Shiny App Example with Video and Image"),
sidebarLayout(
sidebarPanel(
fileInput("file","Upload the file", multiple = T),
h6("Default max. file size is 5MB"),
hr(),
h5("Select the read.table parameters below"),
checkboxInput(inputId = 'header', label = 'Header', value = FALSE),
checkboxInput(inputId = "stringAsFactors", "stringAsFactors", FALSE),
br(),
radioButtons(inputId = 'sep', label = 'Separator', choices = c(Comma=',',Semicolon=';',Tab='\t', Space=''), selected = ','),
h6(" Powered by:"),
tags$img(src='RStudio-Ball.png', height=50, width=50)
),
mainPanel(
uiOutput("tb")
)
)
))
下一个代码是我的server.R
library(shiny)
shinyServer(function(input,output){
data <- reactive({
file1 <- input$file
if(is.null(file1)){return()}
read.table(file=file1$datapath, sep=input$sep, header = input$header, stringsAsFactors = input$stringAsFactors)
})
output$filedf <- renderTable({
if(is.null(data())){return ()}
input$file
})
output$sum <- renderTable({
if(is.null(data())){return ()}
summary(data())
})
output$table <- renderTable({
if(is.null(data())){return ()}
data()
})
output$tb <- renderUI({
if(is.null(data()))
h6("intro video", br(), tags$video(src='reactive.mp4', type="video/mp4", width="350px", height="350px", controls="controls"))
else
tabsetPanel(tabPanel("About file", tableOutput("filedf")),tabPanel("Data", tableOutput("table")),tabPanel("Summary", tableOutput("sum")))
})
})
我可以启动该网站。从那里使用&#34;上传&#34;按钮,我可以导航到我的&#34; reactive.mp4&#34;文件驻留。但它在主面板中提供以下错误消息:&#34;空文件的开头&#34;
在Rstudio控制台中,错误如下:
Error in read.table(file = file1$datapath, sep = input$sep, header = input$header, :
empty beginning of file
Warning in run(timeoutMs) : line 1 appears to contain embedded nulls
Warning in run(timeoutMs) :
incomplete final line found by readTableHeader on 'C:\Users\Lab- User\AppData\Local\Temp\RtmpMxaMe9/8fe8ab38479dea3acaf755a8/0'
我也尝试更改视频文件的编码。不幸的是,它不播放视频。
解决方案:
我还没有尝试过下面那个人给出的解决方案。因为我不想在Youtube上上传视频,然后将其托管在网络上。
一旦用户点击了#34;启动应用程序&#34; Rstudio控制台上的按钮。它会提示用户访问本地网站。当我使用浏览器打开网站时(按钮名称为&#34;在浏览器中打开&#34;,可以在左上角找到)。它将使用浏览器自动显示网站。有时在Windows中从本地Rstudio运行时以及在浏览器中运行时的行为是不同的。
答案 0 :(得分:0)
回到我的快速&#39;修复解决方案是使用iframe
,您可以将视频上传到youtube上,然后使用iframe显示它,如下所示:
rm(list = ls())
library(shiny)
ui <- pageWithSidebar(
headerPanel("Welcome!"),
sidebarPanel(),
mainPanel( HTML('<iframe width="600" height="400" src="//www.youtube.com/embed/dQw4w9WgXcQ" frameborder="0" allowfullscreen></iframe>')
)
)
server <- function(input, output,session) {}
shinyApp(ui = ui, server = server)