最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

-播放器-课程设计报告 -

来源:动视网 责编:小OO 时间:2025-10-01 17:26:45
文档

-播放器-课程设计报告 -

2013-2014学年秋季学期《Windows程序设计》课程设计报告学院:计算机与信息学院序号:18姓名:学号:指导教师:完成时间2013年12月30日一.课程设计题目音频、视频播放器二.课程设计内容及功能2.1.内容播放器,实现播放本地网络的视音频资源,实现了播放器所需的基本功能,有一定的容错性2.2功能1.播放视频音频文件2.实现播放、暂停、停止、上一集、下一集3.播放列表4.添加本地视、音频文件5.键盘控制快进、快退、音量加、减6.全屏播放、退出全屏7.播放网络音视频资源三.课程设计要求
推荐度:
导读2013-2014学年秋季学期《Windows程序设计》课程设计报告学院:计算机与信息学院序号:18姓名:学号:指导教师:完成时间2013年12月30日一.课程设计题目音频、视频播放器二.课程设计内容及功能2.1.内容播放器,实现播放本地网络的视音频资源,实现了播放器所需的基本功能,有一定的容错性2.2功能1.播放视频音频文件2.实现播放、暂停、停止、上一集、下一集3.播放列表4.添加本地视、音频文件5.键盘控制快进、快退、音量加、减6.全屏播放、退出全屏7.播放网络音视频资源三.课程设计要求
2013-2014学年秋季学期

《Windows程序设计》

课程设计报告

      学    院:         计算机与信息学院        

      序    号:         18                       

      姓    名:                                 

      学    号:                             

      指导教师:                   

      

                完成时间      2013 年 12月 30日

一.课程设计题目

  音频、视频播放器

二.课程设计内容及功能

2.1.内容

  播放器,实现播放本地网络的视音频资源,实现了播放器所需的基本功能,有一定的容错性

2.2功能

1.播放视频音频文件

2.实现播放、暂停、停止、上一集、下一集

3.播放列表

4.添加本地视、音频文件

5.键盘控制快进、快退、音量加、减

6.全屏播放、退出全屏

7.播放网络音视频资源

三.课程设计要求

本播放器应能实现播放器的基本功能,可以通过按钮实现播放、暂停、停止、上一集、下一集,可以添加本地视、音频文件,可以显示播放列表,在输入栏中输入网络播放地址可以实现播放网络资源文件

四.关键技术及相关原理

   本播放器界面文件中使用到的组件有QPushButton、QSlider、QTableWidget、QLineEdit。播放器的播放多媒体功能通过Qmediaplayer类来实现;通过QSlider类来显示播放进度、音量及控制播放进度、音量大小;播放列表通过QMediaPlaylist类来实现,可以添加本地影视资源;使用QTableWidget 组件来显示播放列表,可以点击任意资源文件实现播放;通过QLineEdit类来实现网络地址输入框,player->setMedia(QUrl::fromLocalFile(ui->lineEdit->text())) 语句实现播放;使用setIcon(QIcon(""));添加背景图标。

五.设计思路及关键技术解决方法

5.1 设计思路

   界面设计:本播放器模仿迅雷播放器的界面构造,只要分为视频显示,播放列表,控制按钮等几块,结构简洁,方便操作。

  功能设计:本播放器基本上实现了播放器的基本功能要求,按钮控制播放、暂停,停止,上一集,下一集、添加资源文件,进度条显示和控制播放进度、音量大小,播放类表显示即选择播放资源文件,QLineEdit实现播放网络资源

5.2关键技术解决办法

双击实现全屏:使用bool MainWindow::eventFilter(QObject *o, QEvent *e)创建过滤器,安装过滤器videoOutput->installEventFilter(this);

添加背景图标:

切换播放暂停图标:

if(player->state()==QMediaPlayer::PlayingState)

if(player->state()==QMediaPlayer::PausedState)

六.功能模块及关键源代码实现

   该播放器主要功能模块的实现:

6.1 实现播放、暂停、停止、上一首、下一首

   播放、暂停:

   void MainWindow::on_playorpause_clicked() 

{

       showtime();

if(playlist->mediaCount()==0)

       {

           QMessageBox::about(this, tr("提示"), \

                              tr("播放列表中没有播放资源!"));

           return;

       }

qDebug() << playlist->currentIndex();

switch (player->state())

       {

       case QMediaPlayer::PlayingState:

player->pause();

// ui->pushButtonPlay->setChecked(false);

           break;

       case QMediaPlayer::PausedState:

           play();

           break;

       case QMediaPlayer::StoppedState:

           play();

           break;

     }

}

停止:

void MainWindow::on_stop_clicked()

{

player->stop();

ui->widgetVideo->setBackgroundRole(QPalette::Background);

}

上一集、下一集:

  void MainWindow::on_pre_clicked()

{

if(playlist->mediaCount()==0)

       {

           QMessageBox::about(this, tr("提示"), \

                              tr("播放列表中没有播放资源!"));

           return;

       }

if(playlist->currentIndex()==0)

playlist->setCurrentIndex(playlist->mediaCount()-1);

       else

       {

playlist->setCurrentIndex(playlist->currentIndex()-1);

player->play();

       }

}

void MainWindow::on_next_clicked()

{

if(playlist->mediaCount()==0)

       {

           QMessageBox::about(this, tr("提示"), \

                              tr("播放列表中没有播放资源!"));

           return;

       }

playlist->setCurrentIndex((playlist->currentIndex()+1)%playlist->mediaCount());

player->play();

}

6.2 添加本地资源文件

  void MainWindow::on_resource_clicked()

{

       QString initialName="G:\\\迅雷下载";//QDir::homePath();

       QStringList pathList=QFileDialog::getOpenFileNames(this, tr("选择文件"), initialName, tr(".mp3"));

for(int i=0; i           QString path=QDir::toNativeSeparators(pathList.at(i));

           if(!path.isEmpty()) {

playlist->addMedia(QUrl::fromLocalFile(path));

               QString fileName=path.split("\\\\").last();

int rownum=ui->tableWidget->rowCount();

ui->tableWidget->insertRow(rownum);

ui->tableWidget->setItem(rownum, 0, new QTableWidgetItem(fileName.split(".").front()));

ui->tableWidget->setItem(rownum, 1, new QTableWidgetItem(fileName.split(".").last()));

ui->tableWidget->setItem(rownum, 2, new QTableWidgetItem(path));

           }

       }

}

6.3键盘控制快进、快退、音量加减

   void MainWindow::keyPressEvent(QKeyEvent *e){

switch(e->key())

   {

   case Qt::Key_Up:

if(volume<=290)

       {

       volume+=10;

player->setVolume(volume);

ui->slidervolume->setValue(volume);

       }

       else

       {

           volume=300;

player->setVolume(volume);

ui->slidervolume->setValue(volume);

       }

       break;

   case Qt::Key_Down:

if(volume>=10)

       {

       volume-=10;

player->setVolume(volume);

ui->slidervolume->setValue(volume);

       }

       else

       {

           volume=0;

player->setVolume(volume);

ui->slidervolume->setValue(volume);

       }

       break;

    case Qt::Key_Left:

if(positions>=5000)

       {

       positions-=5000;

qDebug() <ui->slider->setValue(positions);

player->setPosition(positions);

       }

       else

       {

           positions=0;

ui->slider->setValue(positions);

player->setPosition(positions);

       }

       break;

    case Qt::Key_Right:

if(positions<=durations-5000)

       {

       positions+=5000;

qDebug()<ui->slider->setValue(positions);

player->setPosition(positions);

       }

       else

       {

           positions=0;

ui->slider->setValue(positions);

player->setPosition(positions);

       }

       break;

      case Qt::Key_Space:

if(player->state() == QMediaPlayer::PlayingState)

       {

player->pause();

       }

else if(player->state() == QMediaPlayer::PausedState)

       {

player->play();

       }

   }

}

6.4播放网络资源

  void MainWindow::on_go_clicked()

{

QString input = ui->lineEdit->text();

       if(input.isEmpty() || input=="输入播放地址")

           return;

       else

         {

player->setMedia(QUrl::fromLocalFile(ui->lineEdit->text()));

         }

}

七.运行结果及演示说明

7.1运行后整体界面

  

八.总结及心得体会

     通过这几个星期的,写这个小程序,明显的感觉到Qt的学习,还不够深,很多东西都是通过网上查阅资料,然后进行编写,通过做这个媒体播放器,这次自己也学了不少的东西。也认识到自己的很多的不足。Qt这方面知识还待加强。

九.参考文献

   C++  GUI  QT4编程(第二版)

 网络查找

文档

-播放器-课程设计报告 -

2013-2014学年秋季学期《Windows程序设计》课程设计报告学院:计算机与信息学院序号:18姓名:学号:指导教师:完成时间2013年12月30日一.课程设计题目音频、视频播放器二.课程设计内容及功能2.1.内容播放器,实现播放本地网络的视音频资源,实现了播放器所需的基本功能,有一定的容错性2.2功能1.播放视频音频文件2.实现播放、暂停、停止、上一集、下一集3.播放列表4.添加本地视、音频文件5.键盘控制快进、快退、音量加、减6.全屏播放、退出全屏7.播放网络音视频资源三.课程设计要求
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top