`
秦朝古月
  • 浏览: 226877 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

用Ruby播放音乐

    博客分类:
  • Ruby
阅读更多
《The Ruby Way》第14章,记述了一段代码可以调用Windows API播放音乐。
require 'win32ole'

sound = WIN32OLE.new('MCI.MMcontrol')
wav = "D:\\Musics\\Japanese\\a002.mp3"
sound.fileName = wav
sound.autoEnable = true

sound.command = 'Open'
sound.command = 'Play'

sleep 7

但是,播放后休眠7秒就会退出程序,而不能等待音乐播放结束。这是作者给读者留的作业。
查了一下MMControl控件,得知有一个mode属性,可以用来判断sound的播放状态。
引用
Mode属性
524:设备未打开
525:停止
526:播放
527:记录
528:查找
529:暂停
530:待命

修改后的程序
require 'win32ole'

sound = WIN32OLE.new('MCI.MMcontrol')
wav = "D:\\Musics\\Japanese\\a002.mp3"
sound.fileName = wav
sound.autoEnable = true

sound.command = 'Open'
sound.command = 'Play'

while sound.mode == 526
  sleep 1
end
分享到:
评论

相关推荐

    Marantz马兰士SA-KI Ruby产品说明书.pdf

    SA-KI Ruby超级音频CD播放机是Marantz品牌最新的产品之一,其设计理念来自于石渡健的音乐情感和专业技能。该产品的设计目标是让音乐爱好者能够更好地体验音乐的美丽和情感。SA-KI Ruby超级音频CD播放机采用了....

    用Python,Lua和Ruby语言设计游戏-Game.Programming.with.Python.Lua.And.Ruby.

    4. 声音与音乐:集成音频播放,创建沉浸式游戏体验。 5. 游戏逻辑:编写AI算法,设计游戏规则,实现角色行为和交互。 6. 存档与加载:保存和恢复游戏进度,确保数据安全。 7. 网络编程:设计多人在线游戏的网络通信...

    Marantz马兰士PM-KI RUBY使用说明书.pdf

    连接方法部分详细阐述了如何连接扬声器、播放设备、录音设备,以及如何实现多个PM-KI RUBY装置的串联,以扩展系统的功能。 对于扬声器连接,用户应根据扬声器的阻抗和功率需求,正确选择接线柱并按照左声道和右声道...

    simple_game_engine:这是一个用 ruby​​ 编写的简单游戏引擎

    4. **音频管理**:虽然Ruby本身不擅长处理音频,但可以通过与其他库如FMod或SFML集成来播放音效和音乐。 5. **对象和实体**:游戏中的角色、物品等都可以表示为对象。Ruby的面向对象特性非常适合创建和管理这些游戏...

    Ruby-YeahRuby视频游戏框架

    2. **音频管理**:框架内置了音频播放功能,可以处理音乐和音效的播放,提供游戏所需的音频反馈。 3. **物理引擎**:通过集成物理模拟库,Yeah允许开发者为游戏对象添加真实感的运动和碰撞检测,使游戏行为更加逼真...

    用于您的私人 DVD 的简单翻录、编码和 iTunes 库工具_Ruby_代码_下载

    iTunes是苹果公司推出的多媒体管理软件,用户可以在这里整理、播放和同步自己的音乐、视频。musical与iTunes的集成,使得整个流程自动化,极大地提高了效率。用户无需手动操作,即可完成从物理DVD到数字音乐库的转变...

    mumble-ruby-pluginbot:一个 Mumble-ruby 机器人(基于插件)

    通过插件,机器人可以连接到各种在线音乐服务,如Spotify或YouTube,实时播放音乐,并让所有在Mumble服务器上的用户共享听觉盛宴。此外,还可以实现音乐控制命令,如播放、暂停、下一首、上一首等。 五、权限管理...

    VoidBot:用Ruby编写的Discord机器人,用于DotVoid项目

    1. **命令响应**:VoidBot能够识别并响应用户输入的特定命令,例如播放音乐、发送天气预报、进行角色扮演游戏(RPG)的互动等。 2. **聊天管理**:它可以自动管理聊天环境,如清理垃圾消息、执行踢人或禁言操作,...

    ruby 和 gosu 的 图像处理工具_c语言_代码_下载

    6. **音效和音乐**:Gosu的`Sample`类处理声音效果,`Song`类则用于播放背景音乐。你可以使用`play`、`pause`、`stop`等方法控制音频。 7. **动画**:通过在`update`方法中切换不同的图像,可以实现简单的动画效果...

    基于SemanticUI的音乐社交网站Ting.zip

    Ting 是基于 Ruby on Rails 框架和 Semantic UI 前端界面开发框架的音乐社交网站。 网站后台使用 Ruby on Rails 框架, 创意来自于 @djyde 前阵子发布的一个叫 Musicda! 的项目。 要求 ...

    一个通过 wifi 同步音乐的工具_Ruby_代码_下载

    可以将播放列表导出为 m3u 的音乐播放器。 同步到手机 SSHDroid 或类似的应用程序通过 ssh 连接到手机。这里可以购买专业版使用公钥认证,避免每次都输入密码。 同步到 USB 设备 无需特殊软件,必须安装设备。 注意...

    基于JSP在线音乐播放系统毕业设计外文文献及翻译.docx

    1. 用户界面:在线音乐播放系统需要具有友好的用户界面,能够让用户轻松地播放音乐。 2. 音乐库管理:在线音乐播放系统需要具有音乐库管理功能,能够管理和维护音乐库。 3. 音乐播放控制:在线音乐播放系统需要具有...

    spaceroids:Ruby游戏

    Ruby的gosu库支持MP3、WAV等多种音频格式,开发者可以通过简单的API调用来播放背景音乐和音效,营造出紧张刺激的游戏氛围。 在游戏设计上, Spaceroids也考虑到了用户体验。例如,游戏的难度设置随着玩家分数的提高...

    echowrap:Echonest API的Ruby接口

    该API包括对音乐推荐,艺术家推荐,播放列表生成,声学分析,音乐识别和数据馈送的支持。 有关该API的详细信息,请访问 该包装器支持100%的 从API调用返回的数据被映射到Ruby对象 通过支持各种HTTP客户端 使用...

    discordrb:Ruby的Discord API

    5. **音乐播放**: 通过与其他库(如`lavalink`)集成,`discordrb` 可以实现播放音乐的功能。 6. **Webhooks**: 支持创建和使用Webhooks,方便从外部系统向Discord发送消息。 **持续更新** `discordrb` 的源代码...

    learn-game-programming-with-ruby:https

    5. **声音与音乐**:Ruby的`FModEx`或`SDL_mixer`库可以用来播放音效和背景音乐,增强游戏体验。 6. **游戏对象与状态管理**:Ruby的面向对象特性使得我们可以轻松地创建游戏对象类,并管理它们的状态。例如,角色...

    luz-gtk:卢斯 1.0。 动态图形编辑器和表演者。 Ruby、Gtk、OpenGL。 这是旧的,被 Luz 2.0 取代

    播放音乐并将歌曲进度百分比发送到 Luz(Ruby、GStreamer) Luz 输入管理器:将实时输入设备数据发送到 Luz(C++、Gtk+、XOrg API、libwiimote、SDL 输入) Luz Spectrum Analyzer :向Luz发送音频信息(C++、OpenGL...

    Ruby Frutz-开源

    Rubygame 支持音频处理,开发者可以通过它们了解如何播放、管理和控制游戏中的声音元素,以增强游戏的沉浸感。 `spr` 目录通常包含了游戏中的精灵图像,这些是游戏中角色、物品等动态元素的图形资源。开发者可以...

    音乐播放网站musicplayergithubio.zip

    编程语言和开发技术:如Java、$C++、Python、JavaScript、Ruby等。 数据库技术:如关系型数据库(如MySQL、Oracle、SQL Server)和非关系型数据库(如MongoDB、Redis)等。 前端开发:HTML、CSS、JavaScript等用于...

    音乐播放网站musicSite.zip

    编程语言和开发技术:如Java、$C++、Python、JavaScript、Ruby等。 数据库技术:如关系型数据库(如MySQL、Oracle、SQL Server)和非关系型数据库(如MongoDB、Redis)等。 前端开发:HTML、CSS、JavaScript等用于...

Global site tag (gtag.js) - Google Analytics