2016-08-18 3 views
1

다음 rmarkdown은 브라우저 (Chrome 사용)에서 재생할 수있는 wav 파일에 대한 링크가있는 핸즈프리가 포함 된 반짝이는 문서를 만듭니다. 테이블의 첫 번째 링크는 외부 wav 파일 http://www.nch.com.au/acm/11k16bitpcm.wav을 가리키고, 두 번째 링크는 rmarkdown에 상대적인 www 폴더에있는 동일한 파일을 가리 킵니다. 첫 번째 링크는 작동하지만 두 번째 링크는 작동하지 않습니다. 내가 온라인에서 발견 한 다양한 기사에 따르면, 폴더는 이러한 외부 콘텐츠에 대한 올바른 위치이며, 실제로 png 파일을 배치하면 rmarkdown 내에서 img() 기능을 사용하여 이미지를 올바르게 표시 할 수 있습니다.rmarkdown 내에서 handsontable에 내장 된 로컬 오디오를 재생할 수 없음 반짝이는 앱

--- 
title: "Playing audio in handsontable" 
date: "18 August 2016" 
output: html_document 
runtime: shiny 
--- 

```{r setup, include=FALSE} 
knitr::opts_chunk$set(echo = TRUE) 
library(shiny) 
library(rmarkdown) 
library(rhandsontable) 
library(dplyr) 
links = c('<audio controls preload="none" type="audio/wav" src="http://www.nch.com.au/acm/11k16bitpcm.wav" </audio>', 
'<audio controls preload="none" type="audio/wav" src="www/11k16bitpcm.wav" </audio>') 
toDisplay = data.frame(Listen = links) 
``` 

The first entry in this table refers to an external WAV file <http://www.nch.com.au/acm/11k16bitpcm.wav> and can be played in a browser. The second entry refers to the same file called `11k16bitpcm.wav` located in the folder `www` relative to the markdown but cannot be played. As a check, if the file can be seen from the markdown, the following will be TRUE: `r file.exists("www/11k16bitpcm.wav")`. 

```{r tabsets, echo=FALSE} 
renderRHandsontable({ 
    rhandsontable(toDisplay, readOnly = TRUE, allowedTags = "<em><b><strong><a><big><audio>", rowHeaders = TRUE) %>% 
    hot_cols(columnSorting = T) %>% 
    hot_col(1, renderer = "html") %>% 
    hot_col(1, renderer = htmlwidgets::JS("safeHtmlRenderer")) 
}) 
``` 

누구나 내게 두 번째 링크가 올바르게 작동하고 오디오를 올바르게 제공 할 수 있도록 도움이되는 팁이 있습니까?

답변

0

빛나는 패키지 내의 addResourcePath 함수가 답입니다.

다음은 적절한 호출 코드입니다.

--- 
title: "Playing audio in handsontable" 
date: "18 August 2016" 
output: html_document 
runtime: shiny 
--- 

```{r setup, include=FALSE} 
knitr::opts_chunk$set(echo = TRUE) 
library(shiny) 
library(rmarkdown) 
library(rhandsontable) 
library(dplyr) 
links = c('<audio controls preload="none" type="audio/wav" src="http://www.nch.com.au/acm/11k16bitpcm.wav" </audio>', 
'<audio controls preload="none" type="audio/wav" src="www/11k16bitpcm.wav" </audio>') 
toDisplay = data.frame(Listen = links) 
# this declares a path containing the resource 
addResourcePath("www", "www") 
``` 

The first entry in this table refers to an external WAV file <http://www.nch.com.au/acm/11k16bitpcm.wav> and can be played in a browser. The second entry refers to the same file called `11k16bitpcm.wav` located in the folder `www` relative to the markdown but cannot be played unless a call to `shiny::addResourcePath()` is made. As a check, if the file can be seen from the markdown, the following will be TRUE: `r file.exists("www/11k16bitpcm.wav")`. 

```{r tabsets, echo=FALSE} 
renderRHandsontable({ 
    rhandsontable(toDisplay, readOnly = TRUE, allowedTags = "<em><b><strong><a><big><audio>", rowHeaders = TRUE) %>% 
    hot_cols(columnSorting = T) %>% 
    hot_col(1, renderer = "html") %>% 
    hot_col(1, renderer = htmlwidgets::JS("safeHtmlRenderer")) 
}) 
```