用 QML 制作一个非常小的 MP3 播放器

一则或许对你有用的小广告

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论

  • 新项目:《从零手撸:仿小红书(微服务架构)》 正在持续爆肝中,基于 Spring Cloud Alibaba + Spring Boot 3.x + JDK 17...点击查看项目介绍 ;
  • 《从零手撸:前后端分离博客项目(全栈开发)》 2 期已完结,演示链接: http://116.62.199.48/ ;

截止目前, 星球 内专栏累计输出 63w+ 字,讲解图 2808+ 张,还在持续爆肝中.. 后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,权限管理,Spring Cloud Alibaba 微服务等等,已有 2200+ 小伙伴加入学习 ,欢迎点击围观

我一直在研究 qml。这是一个微型 mp3 播放器,用于播放当前目录中的一首歌曲。

如果 mac 的自制程序可以为您安装 qml 就好了,但它不能(我猜)。因此,我必须手动安装 qt 5.5( 通过它在 qt.io 的安装程序 )。

安装程序不会将命令链接到 /usr/local/bin 或类似文件,因此请原谅下面 shebang 行(第 1 行)中的长路径:


 #!/usr/bin/env /users/paul/qt/5.5/clang_64/bin/qml.app/contents/macos/qml

import qtquick 2.2 import qtmultimedia 5.0

rectangle { width: 200 height: 100 property bool playing: false

text {
    anchors.centerin: parent
    // one way binding - neat!
    text: playing ? "stop music" : "start music"
}
audio {
    id: playmusic
    source: "memphisslim-ijustlandedinyourtown.mp3"
}    
mousearea {
    anchors.fill: parent
    onclicked: {
        if(playing == true) {
            playmusic.stop()
            playing = false
        } else {
            playmusic.play()
            playing = true
        }
    }
}

}

这是一个优雅的语法 imo。不是丑陋的伙伴,比如 html 和 javascript。

该应用程序只播放一首歌曲。如果你有兴趣,那首歌是 memphis slim 的“i just landed in your town”。在 publicdomain4u 上阅读它,或者从 archive.org 获取这首歌

mac os x 上的应用程序:

我希望该应用程序提供从当前目录中选择歌曲的选择。 qml 中有一个 repeat{} 结构,它看起来正是我想要的,但无法列出文件,这是 api 中的一个大漏洞。至少,如果有的话,我找不到它,因为谷歌搜索结果中充斥着以前版本的 qt,而且 qml 的名称确实没有标准化(它也被称为 qtquick 和 qtcreator)。我相信 qt 的所有者希望您转而使用 C++ 或可以引导 qml 进行繁重工作的高级语言,例如 list_the_files_or_subdirectories_in_a_directory 。我所拥有的样式中的 qml 将 javascript 用于编程位(而不是声明式)。

nodejs 人员必须增强 javascript 以添加更多功能以使其在服务器端可用。根据我的需要,这将是 文件系统 api。你瞧,一个 oleg shparber (trollixx) 已经通过 将 node.js 移植到 qml 来 做到这一点。不过那只是 linux,而且只有在修补了您自己构建的 qt 5.5 之后(目前)。



相关文章