上传的音频文件不能在闪亮模式下播放 [英] Uploaded audio files does not play in r shiny

查看:0
本文介绍了上传的音频文件不能在闪亮模式下播放的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我开发了一个应用程序,它接受一个.wav文件作为输入并播放它。然而,这似乎并不奏效。另一方面,如果音频文件放在/www文件夹中并指定了路径名,则它可以正常播放。

我做错了什么?

App.R

library( shinydashboard )

ui = source( file.path( "ui", "ui.R" ), local = T )$value   #..... ui for ocr

server = function( input, output, session ){

  #..... Include server logic for each tab .....

  source( file.path( "server", "server.R" ), local = T )$value    #..... server logic for ocrs

}

shinyApp( ui = ui, server = server )

ui.R

header = dashboardHeader( title = 'Speech 2 Text' )

sidebar =  dashboardSidebar( collapsed = F,

  sidebarMenu(

  menuItem( strong( '  Speech to Text' ), tabName = 'tab1' )

  )

)

body =  dashboardBody(

  tabItems(

    #####.... tab1 ....####

    tabItem( tabName = 'tab1',

             fluidRow(

               box( title = 'Actions', status = 'success', collapsible = T, width = 12, solidHeader = T,

                    column( 6, fileInput( 'uploaded_audio', 'Choose WAV File', multiple = FALSE, accept = '.wav' ) ),

                    br(),

                    column( 3, align = 'left',

                            actionButton( 'play_audio', 'Play Audio' ),

                            tags$style( "#play_audio { vertical-align: middle; height: 30px; width: 70%; font-size: 15px;color: white;background-color:#1B618D;border-color: #374645 }" )

                    )

                  )

             )

    )

  )

)

dashboardPage( header, sidebar, body, skin = 'yellow' )

server.R

observeEvent( input$play_audio, {

  req( input$uploaded_audio )

  insertUI( selector = "#play_audio", where = "afterEnd",

           ui = tags$audio( src = input$uploaded_audio$datapath, type = "audio/wav", autoplay = NA, controls = NA )  
  )

})

我还打印了str( input$uploaded_audio )以查看存储文件的路径。

它显示类似以下内容的输出:

data.frame':    1 obs. of  4 variables:
 $ name    : chr "newOSR_us_000_0034_8k.wav"
 $ size    : int 568810
 $ type    : chr "audio/wav"
 $ datapath: chr "C:\Users\MACHIN~1\AppData\Local\Temp\Rtmp2zx4tW/c3d8af2a9ed3e4b8cd415aea/0.wav"

推荐答案

您可以对文件进行Base64编码:

library(base64enc)

server <- function(input, output){
  observeEvent( input$play_audio, {

    req( input$uploaded_audio )

    base64 <- dataURI(file = input$uploaded_audio$datapath, mime = "audio/wav")

    insertUI( selector = "#play_audio", where = "afterEnd",

              ui = tags$audio( src = base64, type = "audio/wav", autoplay = NA, controls = NA )  
    )

  })
}

这篇关于上传的音频文件不能在闪亮模式下播放的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆