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

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

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / Java 学习路线 / 一对一提问 / 学习打卡/ 赠书活动

目前,正在 星球 内带小伙伴们做第一个项目:全栈前后端分离博客项目,采用技术栈 Spring Boot + Mybatis Plus + Vue 3.x + Vite 4手把手,前端 + 后端全栈开发,从 0 到 1 讲解每个功能点开发步骤,1v1 答疑,陪伴式直到项目上线,目前已更新了 204 小节,累计 32w+ 字,讲解图:1416 张,还在持续爆肝中,后续还会上新更多项目,目标是将 Java 领域典型的项目都整上,如秒杀系统、在线商城、IM 即时通讯、权限管理等等,已有 870+ 小伙伴加入,欢迎点击围观

我一直在研究 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 之后(目前)。