我正在尝试使用tuneR包在R中播放wav文件。我不知道该函数的背景,但似乎它试图将wav文件保存到它无权访问的临时文件中。我正在做以下事情:
> # install package if you don't have it
> install.packages("tuneR")
> library(tuneR)
> # load some WAV file
> mySound = readWave("Beethoven.wav");
> # plot it to see if things are working:
> plot(mySound)
> # play the sound
> play(mySound)
sh: /var/folders/qv/sw8_92hn4qg0rb5w40gz9mf40000gn/T//RtmpKU9kVN/tuneRtemp.wav: Permission denied
很明显它无法访问此文件夹。如何更改此文件夹或授予R访问此文件夹的权限?
我正在研究MacOSX 10.7.5,RStudio版本为0.98.501。
答案 0 :(得分:10)
使用OSX时,一个简单的解决方案是使用/ usr / bin中的内置命令行音频播放器。 (见:http://hints.macworld.com/article.php?story=20081002080543392)
所以使用:
setWavPlayer('/usr/bin/afplay')
答案 1 :(得分:1)
我制作了一个R套装,让你可以在一段时间内制作自己的音乐。我有这个问题试图让tuneR与mac一起工作。正如你在这里看到的那样:https://github.com/Dasonk/musicmakeR/blob/master/R/playsong.R我的解决方案(可能不是最好的)就是这样做
if(Sys.info()["sysname"] == "Darwin"){
filename <- tempfile("tuneRtemp", fileext = ".wav")
#on.exit(unlink(filename))
writeWave(song, filename)
system(paste("open -a iTunes", filename))
return(invisible())
}
其中song
是wave数据。因此,我的解决方法主要是将其写入您知道可以访问的文件,然后使用系统直接调用音乐播放器。