以下是一个简单的音乐播放器代码案例,使用了C++和Qt框架:
#include <QApplication>
#include <QMediaPlayer>
#include <QMediaPlaylist>
#include <QFileDialog>
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
QMediaPlayer player;
QMediaPlaylist playlist;
// 主窗口
QWidget mainWindow;
mainWindow.setWindowTitle("Music Player");
mainWindow.show();
// 播放列表
QListView listView(&mainWindow);
listView.setModel(playlist);
listView.setSelectionMode(QAbstractItemView::SingleSelection);
listView.setDragEnabled(true);
listView.setAcceptDrops(true);
listView.setDropIndicatorShown(true);
listView.show();
// 打开文件
auto openFile = [&]() {
QStringList files = QFileDialog::getOpenFileNames(
&mainWindow, "Select Music Files", QDir::homePath(),
"Music Files (*.mp3 *.wav *.ogg)");
if (!files.empty()) {
for (auto file : files) {
playlist.addMedia(QUrl::fromLocalFile(file));
}
player.setPlaylist(&playlist);
player.play();
}
};
// 播放/暂停
auto playPause = [&]() {
if (player.state() == QMediaPlayer::PlayingState) {
player.pause();
} else {
player.play();
}
};
// 停止
auto stop = [&]() { player.stop(); };
// 上一曲
auto previous = [&]() { playlist.previous(); };
// 下一曲
auto next = [&]() { playlist.next(); };
// 添加控制按钮
QPushButton openButton("Open", &mainWindow);
QPushButton playPauseButton("Play/Pause", &mainWindow);
QPushButton stopButton("Stop", &mainWindow);
QPushButton previousButton("Previous", &mainWindow);
QPushButton nextButton("Next", &mainWindow);
openButton.move(10, 10);
playPauseButton.move(100, 10);
stopButton.move(210, 10);
previousButton.move(310, 10);
nextButton.move(410, 10);
QObject::connect(&openButton, &QPushButton::clicked, openFile);
QObject::connect(&playPauseButton, &QPushButton::clicked, playPause);
QObject::connect(&stopButton, &QPushButton::clicked, stop);
QObject::connect(&previousButton, &QPushButton::clicked, previous);
QObject::connect(&nextButton, &QPushButton::clicked, next);
return app.exec();
}
这个简单的音乐播放器实现了以下功能:
- 打开音乐文件,可以选择多个文件同时添加到播放列表中。
- 播放、暂停、停止、上一曲、下一曲等基本控制按钮。
- 列表显示当前播放的歌曲和播放进度。
当然,这只是一个简单的示例,还有很多需要改进和优化的地方。