




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2013-2014学年秋季学期Windows程序设计课程设计报告 学 院: 计算机与信息学院 序 号: 18 姓 名: 学 号: 指导教师: 完成时间 2013 年 12月30日一课程设计题目3二课程设计内容及功能32.1.内容32.2功能3三课程设计要求4四关键技术及相关原理4五设计思路及关键技术解决方法45.1 设计思路45.2关键技术解决办法5六功能模块及关键源代码实现56.1 实现播放、暂停,停止,上一首,下一首56.2 添加本地资源文件96.3键盘控制快进、快退、音量加减106.4播放网络资源13七运行结果及演示说明147.1运行后整体界面147.2添加本地文件14八总结及心得体会1
2、5九参考文献15一课程设计题目 音频、视频播放器二课程设计内容及功能2.1.内容播放器,实现播放本地网络的视音频资源,实现了播放器所需的基本功能,有一定的容错性2.2功能1. 播放视频音频文件2. 实现播放、暂停、停止、上一集、下一集3. 播放列表4. 添加本地视、音频文件5. 键盘控制快进、快退、音量加、减6. 全屏播放、退出全屏7. 播放网络音视频资源三课程设计要求本播放器应能实现播放器的基本功能,可以通过按钮实现播放、暂停、停止、上一集、下一集,可以添加本地视、音频文件,可以显示播放列表,在输入栏中输入网络播放地址可以实现播放网络资源文件四关键技术及相关原理 本播放器界面文件中使用到的组
3、件有QPushButton、QSlider、QTableWidget、QLineEdit。播放器的播放多媒体功能通过Qmediaplayer类来实现;通过QSlider类来显示播放进度、音量及控制播放进度、音量大小;播放列表通过QMediaPlaylist类来实现,可以添加本地影视资源;使用QTableWidget 组件来显示播放列表,可以点击任意资源文件实现播放;通过QLineEdit类来实现网络地址输入框,player-setMedia(QUrl:fromLocalFile(ui-lineEdit-text() 语句实现播放;使用setIcon(QIcon();添加背景图标。五设计思路及关
4、键技术解决方法5.1 设计思路 界面设计:本播放器模仿迅雷播放器的界面构造,只要分为视频显示,播放列表,控制按钮等几块,结构简洁,方便操作。 功能设计:本播放器基本上实现了播放器的基本功能要求,按钮控制播放、暂停,停止,上一集,下一集、添加资源文件,进度条显示和控制播放进度、音量大小,播放类表显示即选择播放资源文件,QLineEdit实现播放网络资源5.2关键技术解决办法双击实现全屏:使用bool MainWindow:eventFilter(QObject *o, QEvent *e)创建过滤器,安装过滤器videoOutput-installEventFilter(this);添加背景图标
5、:setIcon(QIcon(:/new/prefix1/images/pause.png)切换播放暂停图标:if(player-state()=QMediaPlayer:PlayingState)ui-playorpause-setIcon(QIcon(:/new/prefix1/images/play.png);if(player-state()=QMediaPlayer:PausedState)ui-playorpause-setIcon(QIcon(:/new/prefix1/images/pause.png);六功能模块及关键源代码实现 该播放器主要功能模块的实现:6.1 实现播放、
6、暂停、停止、上一首、下一首 播放、暂停: void MainWindow:on_playorpause_clicked() showtime(); if(playlist-mediaCount()=0) QMessageBox:about(this, tr(提示), tr(播放列表中没有播放资源!); return; qDebug() currentIndex(); switch (player-state() case QMediaPlayer:PlayingState: player-pause(); ui-playorpause-setIcon(QIcon(:/new/prefix1/i
7、mages/play.png); / ui-pushButtonPlay-setChecked(false); break; case QMediaPlayer:PausedState: play(); ui-playorpause-setIcon(QIcon(:/new/prefix1/images/pause.png); break; case QMediaPlayer:StoppedState: play(); ui-playorpause-setIcon(QIcon(:/new/prefix1/images/pause.png); break; 停止:void MainWindow:o
8、n_stop_clicked() player-stop(); ui-widgetVideo-setBackgroundRole(QPalette:Background); ui-playorpause-setIcon(QIcon(:/new/prefix1/images/play.png);上一集、下一集: void MainWindow:on_pre_clicked() if(playlist-mediaCount()=0) QMessageBox:about(this, tr(提示), tr(播放列表中没有播放资源!); return; if(playlist-currentIndex(
9、)=0) playlist-setCurrentIndex(playlist-mediaCount()-1); else playlist-setCurrentIndex(playlist-currentIndex()-1); player-play(); ui-playorpause-setIcon(QIcon(:/new/prefix1/images/pause.png);void MainWindow:on_next_clicked() if(playlist-mediaCount()=0) QMessageBox:about(this, tr(提示), tr(播放列表中没有播放资源!)
10、; return; playlist-setCurrentIndex(playlist-currentIndex()+1)%playlist-mediaCount(); player-play(); ui-pre-setIcon(QIcon(:/new/prefix1/images/pause.png);6.2 添加本地资源文件 void MainWindow:on_resource_clicked() QString initialName=G:迅雷下载;/QDir:homePath(); QStringList pathList=QFileDialog:getOpenFileNames(t
11、his, tr(选择文件), initialName, tr(.mp3); for(int i=0; iaddMedia(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-setIte
12、m(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(volumesetVolume(volume); ui-slidervolume-setValue(volume); else volume=300; player
13、-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;
14、 qDebug() 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()slider-setValue(positions); player-setPosition(positions); else positio
15、ns=0; ui-slider-setValue(positions); player-setPosition(positions); break; case Qt:Key_Space: if(player-state() = QMediaPlayer:PlayingState) player-pause(); ui-playorpause-setIcon(QIcon(:/new/prefix1/images/play.png); else if(player-state() = QMediaPlayer:PausedState) player-play(); ui-playorpause-setIcon(QIcon(:/new/prefix1/images/pause.png); 6.4播放网络资源 void MainWindow:on_go_clicked() QString input = ui-lineEdit-text(); if(input.isEmpty(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 餐饮企业厨师团队培训与输出合同
- 互联网医疗行业合作推广框架协议
- 矿业资源开采权评估与承包合同模板
- 互联网产业园区厂房土地租赁及电子商务服务合同
- 宠物医疗设备安装工程师考试试卷及答案
- 环保工程师(环境影响评价)岗位面试问题及答案
- 机械加工设备维护成本核算员岗位面试问题及答案
- 股权并购股权担保及支付条款合同
- 股东为公司短期周转资金借款合同
- 股票投资与量化交易合作协议
- 检查检验结果互认工作管理制度
- 光伏电站安全生产管理制度汇编
- 农村小学生科技活动方案
- 2025年健身与体育专业知识与实务考试试题及答案
- 电脑设备报废管理制度
- 中国大蒜及深加工行业发展趋势及投资前景预测报告
- 2025年安全生产月知识测试试卷(附答案)
- 2025至2030中国双酚TMC行业发展趋势分析与未来投资战略咨询研究报告
- 加油站油品品质管理制度
- 播音与主持专业教学标准(中等职业教育)2025修订
- 2025年中国大米加工行业发展潜力分析及投资方向研究报告
评论
0/150
提交评论