b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

mplayer如何旋转播放器_mplayer播放器手机版_mplayer播放器(9)

电脑杂谈  发布时间:2017-02-27 21:07:49  来源:网络整理

mplayer.cpp

  1. #include "mplayer.h"  
  2. #include <QDebug> 
  3. #include <unistd.h> 
  4. MPlayer::MPlayer(QWidget *parent):QDialog(parent)  
  5. {  
  6. setupUi(this); //初始化界面  
  7. isPlay = true;  
  8. isSound = true;  
  9. isStop = false;  
  10. /************************为按键添加图标**************************/  
  11. //play  
  12. QIcon icon_play;  
  13. icon_play.addPixmap(QPixmap(QString::fromUtf8("images/pause_enabled.png")), QIcon::Normal, QIcon::Off);  
  14. pushButton_2->setIcon(icon_play);  
  15. //stop  
  16. QIcon icon_stop;  
  17. icon_stop.addPixmap(QPixmap(QString::fromUtf8("images/stop_enabled.png")), QIcon::Normal, QIcon::Off);  
  18. pushButton_3->setIcon(icon_stop);  
  19. //reward  
  20. QIcon icon_reward;  
  21. icon_reward.addPixmap(QPixmap(QString::fromUtf8("images/reward_enabled.png")), QIcon::Normal, QIcon::Off);  
  22. pushButton_4->setIcon(icon_reward);  
  23. //forward  
  24. QIcon icon_forward;  
  25. icon_forward.addPixmap(QPixmap(QString::fromUtf8("images/forward_enabled.png")), QIcon::Normal, QIcon::Off);  
  26. pushButton_5->setIcon(icon_forward);  
  27. //sound  
  28. QIcon icon_sound;  
  29. icon_sound.addPixmap(QPixmap(QString::fromUtf8("images/sound_enabled.png")), QIcon::Normal, QIcon::Off);  
  30. pushButton->setIcon(icon_sound);  
  31. QIcon icon_previous;  
  32. icon_previous.addPixmap(QPixmap(QString::fromUtf8("images/previous_disabled.png")), QIcon::Normal, QIcon::Off);  
  33. pushButton_6->setIcon(icon_previous);  
  34. QIcon icon_next;  
  35. icon_next.addPixmap(QPixmap(QString::fromUtf8("images/next_enabled.png")), QIcon::Normal, QIcon::Off);  
  36. pushButton_7->setIcon(icon_next);  
  37. /************************设置按钮无边框**********************************/  
  38. pushButton->setFlat(true);  
  39. pushButton_2->setFlat(true);  
  40. pushButton_3->setFlat(true);  
  41. pushButton_4->setFlat(true);  
  42. pushButton_5->setFlat(true);  
  43. pushButton_6->setFlat(true);  
  44. pushButton_7->setFlat(true);  
  45. /*************************获得播放列表***************************/  
  46. directory.setPath("./movie");  
  47. files = directory.entryList(QDir::AllEntries,QDir::Time);  
  48. file_name = files[2]; //文件0和1为 ”.” ”..”,所以从文件2开始播放  
  49. file_count = 2;  
  50. label_3->setText(files[2]);  
  51. /*************************初始化进度条及QProcess类**************/  
  52. horizontalSlider->setPageStep(1);  
  53. process = new QProcess(this);  
  54. process->setProcessChannelMode(QProcess::MergedChannels);  
  55. /*************************初始化信号、槽*************************/  
  56. connect(pushButton_2,SIGNAL(clicked()),this,SLOT(play_pause_slots()));  
  57. connect(pushButton_3,SIGNAL(clicked()),this,SLOT(stop_slots()));  
  58. connect(pushButton_4,SIGNAL(clicked()),this,SLOT(playerReward_slots()));  
  59. connect(pushButton_5,SIGNAL(clicked()),this,SLOT(playerForward_slots()));  
  60. connect(pushButton_6,SIGNAL(clicked()),this,SLOT(previous_slots()));  
  61. connect(pushButton_7,SIGNAL(clicked()),this,SLOT(next_slots()));  
  62. //connect(horizontalSlider,SIGNAL(valueChanged(int)),this,SLOT(seek_slots(int)));  
  63. connect(spinBox,SIGNAL(valueChanged(int)),this,SLOT(set_volume_slots(int)));  
  64. connect(pushButton,SIGNAL(clicked()),this,SLOT(set_sound_slots()));  
  65. connect(process,SIGNAL(readyReadStandardOutput()),this,SLOT(back_message_slots()));  
  66. //当process可以读到Mplayer的返回信息时,产生readyReadStandardOutput()信号  
  67. //process->start("mplayer -slave -quiet -ac mad 2.avi");  
  68. //add -wid QWidget->winId();  
  69. QString common = "mplayer -slave -quiet -ac mad -zoom movie/" + file_name + " -wid " + QString::number(widget->winId()); //这里的widget是ui中MPlayer的显示区  
  70. process->start(common);      //开始运行程序  
  71. spinBox->setValue(40);       
  72. timer = new QTimer(this);  
  73. connect(timer,SIGNAL(timeout()),this,SLOT(get_time_slots()));  
  74. //定时获取MPlayer的时间信息  
  75. timer->start(1000); //启动定时器 1秒timeout 1次  
  76. }  
  77. void MPlayer::play_pause_slots()  
  78. {  
  79. if(!isPlay)  
  80. {  
  81. if(isStop)  
  82. {  
  83. file_name = files[file_count];  
  84. QString common = "mplayer -slave -quiet -ac mad -zoom movie/" + file_name + " -wid " + QString::number(widget->winId());  
  85. process->start(common);  
  86. QIcon icon_stop;  
  87. icon_stop.addPixmap(QPixmap(QString::fromUtf8("images/stop_enabled.png")), QIcon::Normal, QIcon::Off);  
  88. pushButton_3->setIcon(icon_stop);  
  89. isStop = false;  
  90. }  
  91. else  
  92. {  
  93. process->write("pause ");  
  94. }  
  95. QIcon icon_play;  
  96. icon_play.addPixmap(QPixmap(QString::fromUtf8("images/pause_enabled.png")), QIcon::Normal, QIcon::Off);  
  97. pushButton_2->setIcon(icon_play);  
  98. isPlay = true;  
  99. }  
  100. else  
  101. {  
  102. QIcon icon_pause;  
  103. icon_pause.addPixmap(QPixmap(QString::fromUtf8("images/play_enabled.png")), QIcon::Normal, QIcon::Off);  
  104. pushButton_2->setIcon(icon_pause);  
  105. isPlay = false;  
  106. process->write("pause ");  
  107. }  
  108. }  
  109. void MPlayer::stop_slots()  
  110. {  
  111. if(!isStop)  
  112. {  
  113. process->write("quit ");  
  114. QIcon icon_pause;  
  115. icon_pause.addPixmap(QPixmap(QString::fromUtf8("images/play_enabled.png")), QIcon::Normal, QIcon::Off);  
  116. pushButton_2->setIcon(icon_pause);  
  117. isPlay = false;  
  118. QIcon icon_stop;  
  119. icon_stop.addPixmap(QPixmap(QString::fromUtf8("images/stop_disabled.png")), QIcon::Normal, QIcon::Off);  
  120. pushButton_3->setIcon(icon_stop);  
  121. isStop = true;  
  122. label->setText("00:00:00");  
  123. label_2->setText("00:00:00");  
  124. }  
  125. }  
  126. void MPlayer::previous_slots()  
  127. {  
  128. if(file_count > 2)  
  129. {  
  130. if(file_count == (files.size()-1))  
  131. {  
  132. QIcon icon_next;  
  133. icon_next.addPixmap(QPixmap(QString::fromUtf8("images/next_enabled.png")), QIcon::Normal, QIcon::Off);  
  134. pushButton_7->setIcon(icon_next);  
  135. }  
  136. process->write("quit ");  
  137. process = new QProcess(this);  
  138. connect(process,SIGNAL(readyReadStandardOutput()),this,SLOT(back_message_slots()));  
  139. file_count--;  
  140. if(!isStop)  
  141. {  
  142. file_name = files[file_count];  
  143. QString common = "mplayer -slave -quiet -ac mad -zoom movie/" + file_name + " -wid " + QString::number(widget->winId());  
  144. process->start(common);  
  145. }  
  146. if(file_count == 2)  
  147. {  
  148. QIcon icon_previous;  
  149. icon_previous.addPixmap(QPixmap(QString::fromUtf8("images/previous_disabled.png")), QIcon::Normal, QIcon::Off);  
  150. pushButton_6->setIcon(icon_previous);  
  151. }  
  152. label_3->setText(files[file_count]);  
  153. }  
  154. }  
  155. void MPlayer::next_slots()  
  156. {  
  157. if(file_count < (files.size()-1))  
  158. {  
  159. if(file_count == 2)  
  160. {  
  161. QIcon icon_previous;  
  162. icon_previous.addPixmap(QPixmap(QString::fromUtf8("images/previous_enabled.png")), QIcon::Normal, QIcon::Off);  
  163. pushButton_6->setIcon(icon_previous);  
  164. }  
  165. process->write("quit ");       
  166. process = new QProcess(this);  
  167. connect(process,SIGNAL(readyReadStandardOutput()),this,SLOT(back_message_slots()));  
  168. file_count++;  
  169. if(!isStop)  
  170. {  
  171. file_name = files[file_count];  
  172. QString common = "mplayer -slave -quiet -ac mad -zoom movie/" + file_name + " -wid " + QString::number(widget->winId());  
  173. process->start(common);  
  174. }  
  175. if(file_count == (files.size()-1))  
  176. {     
  177. QIcon icon_next;  
  178. icon_next.addPixmap(QPixmap(QString::fromUtf8("images/next_disabled.png")), QIcon::Normal, QIcon::Off);  
  179. pushButton_7->setIcon(icon_next);  
  180. }  
  181. }  
  182. label_3->setText(files[file_count]);  
  183. }  
  184. void MPlayer::seek_slots(int seek_num)  
  185. {  
  186. qDebug()<<seek_num;  
  187. if(process && process->state() == QProcess::Running )  
  188. {  
  189. process->write(QString("seek " + QString::number(qMin(seek_num,100)) + "1 ").toAscii());  
  190. }  
  191. }  
  192. void MPlayer::get_time_slots()  
  193. {  
  194. if(isPlay)  
  195. ]{  
  196. p  
  197. rocess->write("get_time_pos ");  
  198. process->write("get_time_length ");  
  199. }  
  200. }  
  201. void MPlayer::set_volume_slots(int volume)  
  202. {  
  203. qDebug()<<volume;  
  204. process->write(QString("volume +" + QString::number(volume) + " ").toAscii());  
  205. //process->write(QString("volume +1 ").toAscii());  
  206. }  
  207. void MPlayer::set_sound_slots()  
  208. {  
  209. if(isSound)  
  210. {  
  211. process->write("mute 1 ");  
  212. QIcon icon_sound;  
  213. icon_sound.addPixmap(QPixmap(QString::fromUtf8("images/nosound_enabled.png")), QIcon::Normal, QIcon::Off);  
  214. pushButton->setIcon(icon_sound);  
  215. isSound = false;  
  216. }  
  217. else  
  218. {  
  219. process->write("mute 0 ");  
  220. QIcon icon_sound;  
  221. icon_sound.addPixmap(QPixmap(QString::fromUtf8("images/sound_enabled.png")), QIcon::Normal, QIcon::Off);  
  222. pushButton->setIcon(icon_sound);  
  223. isSound = true;  
  224. }  
  225. }  
  226. void MPlayer::playerReward_slots()  
  227. {  
  228. //bool ok;  
  229. //int m=moviePosition.toInt(&ok);  
  230. if (process && process->state()==QProcess::Running && !isPlay)  
  231. {  
  232. //QString cmd="seek "+QString::number(qMax(m-10,0))+" 1 ";  
  233. //process->write(cmd.toAscii());  
  234. qDebug()<<"Reward";  
  235. }  
  236. }  
  237. void MPlayer::playerForward_slots()  
  238. {  
  239. //     groupBox->setVisible(false);  
  240. //bool ok;  
  241. //int m=moviePosition.toInt(&ok);  
  242. /*    if (process && process->state()==QProcess::Running && !isPlay)  
  243. {  
  244. //QString cmd="seek "+QString::number(qMin(m+10,100))+" 1 ";  
  245. //process->write(cmd.toAscii());  
  246. qDebug()<<"Forward";  
  247. }*/  
  248. }  
  249. void MPlayer::back_message_slots()  
  250. {  
  251. while(process->canReadLine())  
  252. {  
  253. QString message(process->readLine());  
  254. QStringList messagemessage_list = message.split("=");  
  255. if(message_list[0] == "ANS_TIME_POSITION")  
  256. {  
  257. curr_time = message_list[1].toDouble();//toInt();  
  258. QTime time = int_to_time(curr_time);  
  259. label->setText(time.toString("hh:mm:ss"));  
  260. horizontalSlider->setValue(100 * curr_time / file_length);  
  261. }  
  262. else if(message_list[0] == "ANS_LENGTH")  
  263. {  
  264. file_length = message_list[1].toDouble();//toInt();  
  265. QTime time = int_to_time(file_length);  
  266. label_2->setText(time.toString("hh:mm:ss"));       
  267. }  
  268. }  
  269. }  
  270. QTime MPlayer::int_to_time(int second)  
  271. {  
  272. int sec = 0min = 0hour = 0;  
  273.  
  274. QTime time;  
  275. if(second < 60)      
  276. {  
  277. sec = second;  
  278. min = 0;  
  279. hour = 0;  
  280. }  
  281. if(second >= 60 && second < 3600)  
  282. {  
  283. sec = second % 60;  
  284. min = second / 60;  
  285. hour = 0;  
  286. }  
  287. if(second >= 3600)  
  288. {  
  289. sec = second % 60;  
  290. min = (second / 60) % 60;  
  291. hour = second / 3600;  
  292. }  
  293. time.setHMS(hour,min,sec);  
  294. return time;  
  295. }  
  296. image.qrc  
  297. <RCC> 
  298. <qresource prefix="images" > 
  299. <file>images/player_play.png</file> 
  300. <file>images/player_stop.png</file> 
  301. <file>images/player_pause.png</file> 
  302. <file>images/play_enabled.png</file> 
  303. <file>images/pause_enabled.png</file> 
  304. <file>images/reward_enabled.png</file> 
  305. <file>images/forward_enabled.png</file> 
  306. <file>images/stop_enabled.png</file> 
  307. <file>images/sound_enabled.png</file> 
  308. <file>images/nosound_enabled.png</file> 
  309. <file>images/previous_enabled.png</file> 
  310. <file>images/previous_disabled.png</file> 
  311. <file>images/next_enabled.png</file> 
  312. <file>images/next_disabled.png</file> 
  313. </qresource> 
  314. </RCC> 


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/bofangqi/article-34872-9.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...