Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
410 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 Answer

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)

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...