Есть ли способ заставить R звучать / воспроизводить звук в конце скрипта? - PullRequest
126 голосов
/ 29 июля 2010

Когда я запускаю R-скрипты, я делаю что-то еще на другом рабочем столе.Если я не часто проверяю, я никогда не знаю, когда что-то закончено.Есть ли способ вызвать гудок (например, системный гудок) или заставить R воспроизвести звук или уведомить рычание через какой-то код в конце моего сценария?

Ответы [ 16 ]

8 голосов
/ 29 июля 2010

Или, если вы используете дистрибутив GNU / Linux и у вас есть модуль pcspkr , занесенный в черный список (динамик ПК всегда меня раздражал), попробуйте объединить system с некоторыми визуальными / визуальными уведомлениями, например

system("aplay -t wav /usr/share/sounds/phone.wav") # for auditive bell (an I mean it literary)
system("zenity --title=\"R script info\" --text=\"Script has finished with zero exit status\" --info") # for GTK dialog

Вы можете проверить zenity руководство, если вы предпочитаете оповещение, скажем, в области уведомлений ... Но, с помощью функции system, вы можете делать практически все что угодно: отправлять электронную почту, запускать некоторыедругой скрипт, перезагрузите машину, sudo rm -rf *.* и т. д. что-нибудь ... и я это имею в виду.

Но это стоит только IF вы используете дистрибутив GNU / Linux (или UNIX), в противном случае придерживайтесь специфических команд Windows, хотя в этом случае я не могу дать вам много информации ...

5 голосов
/ 16 мая 2015

посмотрите на этот пакет: RPushBullet

R-интерфейс для службы обмена сообщениями Pushbullet, которая обеспечивает быстрые и эффективные уведомления (и передачу файлов) между компьютерами, телефонами иТаблетки

RPushbullet является полностью бесплатным и мультиплатформенным.Что касается вашего вопроса, вы можете использовать эту библиотеку для отправки Push в ваш браузер, но, очевидно, это становится удивительным, когда вам нужно что-то, что может уведомить вас, пока вас нет.Более того, создатель пакета R - это тот же известный Rcpp, Дирк Эддельбюттель.Я бы сказал, что стоит попробовать!

5 голосов
/ 30 марта 2015

Вдохновленный beepr, эта функция, которую я сейчас использую для решения подобных проблем: D

work_complete <- function() {
  cat("Work complete. Press esc to sound the fanfare!!!\n")
  on.exit(beepr::beep(3))

  while (TRUE) {
    beepr::beep(4)
    Sys.sleep(1)
  }
}
4 голосов
/ 19 января 2016

Как насчет воспроизведения музыки?

shell.exec("foo/Born.to.be.wild.mp3")
2 голосов
/ 13 июля 2016

Вы можете использовать команду notify-send:

system("notify-send \"R script finished running\"")
0 голосов
/ 01 октября 2018

Из-за этих многочисленных идей я создал решение без доступа к Интернету, потому что я работаю с VPN-клиентом с Windows.Таким образом, он воспроизводит типичный звук Windows, который обычно используется в любой операционной системе Windows.

#Function with loop, press Esc to stopp      
    alarm2 <- function(){
      while(TRUE){
        system("cmd.exe",input="C:/Windows/WinSxS/amd64_microsoft-windows-shell-sounds_31bf3856ad364e35_10.0.17134.1_none_fc93088a1eb3fd11/tada.wav")
        Sys.sleep(1)
      }
    }

Функция без петли

    alarm3 <- function(){
        system("cmd.exe",input="C:/Windows/WinSxS/amd64_microsoft-windows-shell-sounds_31bf3856ad364e35_10.0.17134.1_none_fc93088a1eb3fd11/tada.wav")
        Sys.sleep(1)
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...