2016-03-24 21 views
3

Für diese Frage bin ich mitR Shiny - Audio-Wiedergabe

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

obwohl ich bin sicher, dass nur glänzend relevant ist.

Per Shiny tag glossary, sollte ich in der Lage sein

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

, die die HTML-

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

erzeugt verwenden, um einen Sound in einem Shiny Server zu spielen.

Ich kann nicht mit jeder Art von MP3, WAV oder andere Datei arbeiten. Edge gibt einen Fehler "Diese Art von Audiodatei wird nicht unterstützt" an, während die RStudio-Webseite und Chrome nur ein leeres Wiedergabesteuerelement anzeigen. Ich möchte, dass es mit * .wav-Dateien arbeitet, die im laufenden Betrieb vom Shiny-Programm erstellt wurden. Die WAV-Dateien werden korrekt erzeugt und spielen in jedem Musik-Player, den ich ausprobiert habe (zB VLC, WMP, MMgold, WinAmp, usw.).

den Code in einer HTML-Datei, zB

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

funktioniert gut in jedem Browser. Ich denke, das Problem könnte damit zu tun haben, wie R Shiny mit Verzeichnissen umgeht. Vorschläge?

+0

explizite Pfade verwenden wie 'paste0 (getwd() "/ wavs/tempwav.wav")' Ergebnisse in der Fehlermeldung „Audio gestoppt plötzlich spielen "in Edge, immer noch nichts woanders. Da ich dachte, dass es ein Ergebnis der reaktiven Natur von Shiny sein könnte, habe ich versucht, eine statische WAV-Datei ohne Erfolg zu verknüpfen. – Zediiiii

Antwort

2

Lösung here. Technisch wurde dies im Shiny-Tag-Glossar geschrieben - obwohl es leicht zu übersehen war. Das www-Unterverzeichnis muss sich im aktuellen Arbeitsverzeichnis befinden, damit dies ordnungsgemäß funktioniert.

Um wirklich klar zu sein, wenn Ihr Pwd "c: \ dir" ist, dann muss ein Verzeichnis "c: \ dir \ www" die Audiodateien enthalten, die abgespielt werden sollen, und das Tag würde wie in der Abbildung geschrieben werden Glossar:

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

es für wav-Dateien funktioniert auch

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

Beachten Sie, dass der Player derzeit auf der RStudio-Webseite nicht korrekt funktioniert - er muss in einem Webbrowser angezeigt werden. – Zediiiii

+0

Auch die automatische Auffrischungsmethode für die reaktive Eingabe wird hier beschrieben (http://stackoverflow.com/questions/36208785/html-or-r-shiny-audio-caching) – Zediiiii