QT开发中文网

用C++实现一个简单的音乐播放器代码案例

以下是一个简单的音乐播放器代码案例,使用了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();
}

这个简单的音乐播放器实现了以下功能:

  1. 打开音乐文件,可以选择多个文件同时添加到播放列表中。
  2. 播放、暂停、停止、上一曲、下一曲等基本控制按钮。
  3. 列表显示当前播放的歌曲和播放进度。

当然,这只是一个简单的示例,还有很多需要改进和优化的地方。

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://qt.0voice.com/?id=262

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?