社区
其他技术讨论专区
帖子详情
Phonon::MediaController 中的 setCurrentAudioChannel 的作用是什么?
weixin_38058748
2019-09-19 06:44:31
猜想是设置声道的,但是好像又不起什么效果。哪位高手知道请讲一讲,谢谢!
...全文
19
回复
打赏
收藏
Phonon::MediaController 中的 setCurrentAudioChannel 的作用是什么?
猜想是设置声道的,但是好像又不起什么效果。哪位高手知道请讲一讲,谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
基于QT的音乐播放器编程(实现最基本的功能)
基于QT的音乐播放器编程private:
Phonon
::
Media
Object *
audio
;//管理媒体源
Phonon
::
Media
Object *musicInformation
Media
Object;//
Phonon
::VideoWidget *videoWidget;//
Phonon
::
Audio
Output *
audio
Output;//连接物理设备
Phonon
::SeekSlider *seekSlider;//实现进度条
Phonon
::VolumeSlider *volumeSlider;//音量调节 QList<
Phonon
::
Media
Source> sourceList;//播放列表 QTimer *timer; QIcon *iconplay; QIcon *iconpause; QAction *play;
QT_播放器.
Phonon
::
Media
Object *
audio
;//管理媒体源
Phonon
::
Media
Object *musicInformation
Media
Object;//
Phonon
::VideoWidget *videoWidget;//
Phonon
::
Audio
Output *
audio
Output;//连接物理设备
Phonon
::SeekSlider *seekSlider;//实现进度条
Phonon
::VolumeSlider *volumeSlider;//音量调节 QList<
Phonon
::
Media
Source> sourceList;//播放列表 QTimer *timer; QIcon *iconplay;
QT_
Phonon
详解.pdf
Phonon
是什么?Qt从4.4版本开始提供的一套多媒体框架,提供多媒体回放的功能。目前在Qt 4.6
中
实现多媒体播放图形界面主要依赖于
phonon
框架,其实qt
中
还有一个Multi
media
模块,帮助文档
中
对它的描述是:实现底层的多媒体播放功能,在一般情况下上层的接口
phonon
模块更适合实现这些功能。
phonon
最初是 一个 源于KDE的项目,为使用音频和视频的应用程序开发提供的一个框架。应用程序不用去管多媒体播放是通过什么实现的(如gstreamer、xine),只需调用相应的接口就行,但这
中
间需要一个
中
转,被称为backend。Qt也是通过
phonon
来实现夸平台的多媒体播放。
Qt基于
Phonon
做的视频播放器
Qt基于
Phonon
做的视频播放器
音乐播放器
include "widget.h" #include "ui_widget.h" Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget) { ui->
set
upUi(this); pathName = "/home/akaedu/akplayer/music/"; // getMusicList(); dir.
set
Path(pathName); musicList.append(dir.entryList()); musicList.removeFirst(); musicList.removeFirst(); musicNo = 0; musicCount = musicList.size();
media
Object = new
Phonon
::
Media
Object(this);
audio
Output = new
Phonon
::
Audio
Output(
Phonon
::MusicCategory,this); volumeSlider = new
Phonon
::VolumeSlider(this); seekslider = new
Phonon
::SeekSlider(this); timer = new QTimer(this);
Phonon
::createPath(
media
Object,
audio
Output); ui->listWidget->addItems(musicList); ui->progressBar->
set
Value(0); connect(timer,SIGNAL(timeout()),this,SLOT(timeOutSlot())); connect(
media
Object,SIGNAL(finished()),this,SLOT(playNext())); play(musicNo); timer->start(400); volumeSlider->
set
Audio
Output(
audio
Output); volumeSlider->
set
Orientation(Qt::Horizontal); volumeSlider->
set
Geometry(15,10,150, 30); seekslider->
set
Media
Object(
media
Object); seekslider->
set
Geometry(20,70,471,12); QPixmap pic; pic.load("/home/akaedu/akplayer/123.jpg"); pic = pic.scaled(QSize(611,521)); ui->label->
set
Pixmap(pic); } Widget::~Widget() { delete ui; } void Widget::playNext() { on_pb_down_clicked(); } void Widget::timeOutSlot() { ui->progressBar->
set
Value(100*
media
Object->
current
Time()/
media
Object->totalTime()+1); ui->lb_cu->
set
Text(time.addMSecs(
media
Object->
current
Time()).toString()); ui->lb_to->
set
Text(time.addMSecs(
media
Object->totalTime()).toString()); time1 = QTime::
current
Time(); QString text = time1.toString("hh:mm:ss"); ui->lcdNumber->display(text); } void Widget::play(int i) { QString ptr; ptr.append(pathName); ptr.append(musicList.at(i).toLocal8Bit().constData());
media
Object->
set
Current
Source(ptr); ui->textEdit->
set
ReadOnly(true); ui->textEdit->clear(); ui->textEdit-> append(musicList.at(i)); ui->listWidget->item(i)->
set
Selected(true); ui->listWidget->
set
Current
Row(i); } //int Widget::getMusicList() //{ // DIR *dir; // struct dirent *ptr; // dir = opendir(pathName); // if(!dir){ // qDebug()<< "open dir error!"; // return -1; // } // while((ptr = readdir(dir))) // { // if(ptr->d_name[0] == '.') continue; // musicList << ptr->d_name; // } // closedir(dir); //} void Widget::on_pB_play_clicked() { ui->pB_play->
set
Disabled(true); ui->pB_stop->
set
Disabled(false);
media
Object->play(); } void Widget::on_listWidget_doubleClicked(const QModelIndex &index) { ui->pB_play->
set
Disabled(true); ui->pB_stop->
set
Disabled(false); play(index.row()); musicNo = index.row();
media
Object->play(); timer->start(400); } void Widget::on_pB_stop_clicked() { ui->pB_stop->
set
Disabled(true); ui->pB_play->
set
Disabled(false);
media
Object->pause(); } void Widget::on_pb_down_clicked() { ui->pB_play->
set
Disabled(true); ui->pB_stop->
set
Disabled(false); if(musicNo < musicCount - 1 && musicNo >= 0) { musicNo++ ; } else{ musicNo = 0; } play(musicNo);
media
Object->play(); } void Widget::on_pB_up_clicked() { ui->pB_play->
set
Disabled(true); ui->pB_stop->
set
Disabled(false); if(musicNo < musicCount && musicNo > 0) { musicNo--; } else{ musicNo =musicCount - 1; } play(musicNo);
media
Object->play(); } void Widget::on_pB_speed_clicked() {
media
Object->seek(
media
Object->
current
Time()+10000); } void Widget::on_pB_back_clicked() {
media
Object->seek(
media
Object->
current
Time()-10000); }
其他技术讨论专区
433
社区成员
791,270
社区内容
发帖
与我相关
我的任务
其他技术讨论专区
其他技术讨论专区
复制链接
扫一扫
分享
社区描述
其他技术讨论专区
其他
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章