Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
411 views
in Technique[技术] by (71.8m points)

html - R Shiny - Audio Playback

For this question, I'm using

library("shiny")
library("tuneR")
library("markdown")

though I'm sure only shiny is relevant.

Per the Shiny tag glossary, I should be able to use

tags$audio(src = "wavs/tempwav.wav", type = "audio/wav", autoplay = NA, controls = NA)

which generates the html

<audio src="wavs/tempwav.wav" type="audio/wav" autoplay controls></audio> 

to play a sound in a Shiny server.

I can't get this to work with any kind of mp3, wav, or other file. Edge gives a, "this type of audio file is not supported" error, while the RStudio webpage and Chrome just show a blank playback control. I want it to work with *.wav files generated on the fly by the Shiny program. The wav files are generated correctly and play correctly in every music player I tried (eg, VLC, WMP, MMgold, WinAmp, etc).

Using the code in an HTML file, eg

<HTML>
<audio src="wavs/tempwav.wav" type="audio/wav" autoplay controls></audio>
</HTML>

works just fine in any browser. I think the issue may have to do with how R Shiny deals with directories. Suggestions?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Solution here. Technically this was written in the Shiny tag glossary - though it was easy to miss. The www sub-directory must be in the present working directory for this to operate correctly.

To be really clear, if your pwd is "c:dir", then a directory "c:dirwww" must contain the audio files to be played, and the tag would be written as shown in the glossary:

tags$audio(src = "sound.mp3", type = "audio/mp3", autoplay = NA, controls = NA)

it works for wav files too

tags$audio(src = "sound.wav", type = "audio/wav", autoplay = NA, controls = NA)

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...