作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Racket 制作幻灯片,并希望在幻灯片后面循环播放一首短歌。我目前正在使用 (play-sound)
但是 Racket 在歌曲结束时因段错误而崩溃,总是在不同的幻灯片上。如果我在没有声音代码的情况下运行节目,它不会出现段错误。
我认为歌曲结尾导致 Racket /gui崩溃,循环可能会阻止这种情况。在节目的主要功能中播放歌曲
(define (run)
(play-sound "path" #t)
(slide (...)
(run))
最佳答案
您可能对 RSound 包感兴趣(参见 http://pkgs.racket-lang.org)。与您当前的方法相比,此软件包既有优点也有缺点。最明显的缺点是它需要您将歌曲转换为 WAV。这是一些代码:
#lang racket
(require rsound)
(define ishmael (rs-read "/Users/clements/Desktop/call-me-ishmael.wav"))
(define LEAD-TIME (* 1/10 44100))
(define (play-forever sound)
(define p (make-pstream))
(define len (rs-frames sound))
(let loop ([t 0])
(pstream-queue p sound (+ t LEAD-TIME))
(define next-t (+ t len))
(sleep (* 1/44100 (- next-t (pstream-current-frame p))))
(loop next-t)))
(play-forever ishmael)
关于audio - 如何在 Racket/gui 中重复播放歌曲?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29853060/
我是一名优秀的程序员,十分优秀!