




已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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八总结及心得体会15九参考文献15一课程设计题目 音频、视频播放器二课程设计内容及功能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);添加背景图标: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 实现播放、暂停、停止、上一首、下一首 播放、暂停: 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/images/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:on_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()=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(播放列表中没有播放资源!); 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(this, 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-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(volumesetVolume(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() 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 positions=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至2030疫苗管理解决方案行业发展趋势分析与未来投资战略咨询研究报告
- 市场2025年工作总结
- 幼儿园中班个人工作总结
- 2025至2030中国海底油井干预系统行业发展趋势分析与未来投资战略咨询研究报告
- 2025年智能可穿戴设备睡眠监测技术创新与睡眠环境优化
- 2025年智能警务安防监控系统集成技术创新应用可行性研究报告
- 社区图书馆电子书采购与数字阅读服务合同
- 小班下学期期末汇报课大纲
- 《小猪变形记》一年级
- 抗菌药物临床应用指导原则
- MirrorView切换手册模板
- 急救车必备药品和物品 急救车物品药品管理
- GB/T 3253.8-2009锑及三氧化二锑化学分析方法三氧化二锑量的测定碘量法
- GB/T 24720-2009交通锥
- GB/T 15065-2009电线电缆用黑色聚乙烯塑料
- 陈嘉庚生平介绍(中文+英文版)
- DB21T 3354-2020 辽宁省绿色建筑设计标准
- 我和我的祖国课件
- 语言领域核心经验《学前儿童语言学习与发展核心经验》
评论
0/150
提交评论