mp3上的Set Modemp3格式是什么意思思

博客分类:
& 在mysql5中,可以设置safe mode,比如在一个更新语句中
UPDATE table_name SET bDeleted=0;
执行时会错误,报:
You are using safe update mode and you tried to update a table without a WHERE clause that uses a KEY column.”
& 原因是在safe mode下,要强制安全点,update只能跟where了,
要取消这个限制,可以:
&&& SET SQL_SAFE_UPDATES=0;
即可
&&
浏览 23371
浏览: 5815331 次
来自: 广州
有些扩展名为null
非常感谢!!!!!!!!!
https://zhuban.me竹板共享 - 高效便捷的文档 ...
kris_zhang 写道如果有多个@Primary 会怎么样 ...
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'博客访问: 14539
博文数量: 9
博客积分: 1410
博客等级: 上尉
技术积分: 100
注册时间:
分类: C/C++ 16:19:29
经过几天的努力,利用Qt4实现的前台界面,madplay实现的后台播放器总算是能正常运行了(在fs2410开发板上的运行界面如下),下面的笔记简要说明了实现方式。
&&&&&&&&&&&
1.main.cpp 文件
#include"audio_player.h"
int main(int argc, char *argv[])
&&& &&& QApplication app(argc, argv);
&&& &&& QTextCodec::setCodecForLocale(QTextCodec::codecForLocale());
&&& &&& QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK"));
&&& &&& QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GBK"));
&&& &&& audio_player myA
&&& &&& myAudio.setFont(QFont("wenquanyi",12,QFont::Normal));&& //设置字体
&&& &&& myAudio.show();
&&& &&& return app.exec();
2.Audio_player.h 文件
#ifndef _AUDIO_PLAYER_H_
#define _AUDIO_PLAYER_H_
struct Tag_Header{
&&&&&&& char Header[3];
&&&&&&& &&&&&&&
&&&&&&& char R
&&&&&&& char F
&&&&&&& char Size[4];
struct Tag_Trailer{
&&&&&&& char Header[3];
&&&&&&& char Title[30];
&&&&&&& char Artist[30];
&&&&&&& char Album[30];
&&&&&&& char Year[4];
&&&&&&& char Comment[28];
&&&&&&& char Cenre[1];
class audio_player : public QDialog
&&& &&& Q_OBJECT
&&& &&& audio_player(QWidget *parent = 0, Qt::WindowFlags f = 0);
&&& &&& void readInfo(QString file);
&&& &&& void Tag_GetTrailer(void);
&&& &&& void Tag_GetHeader(void);
private slots:
&&& &&& void slotStart();
&&& &&& void slotUp();
&&& &&& void slotDown();
&&& &&& void slotOpen();&&&
&&& &&& void slotGetVol();
&&& &&& void slotShowTime();
&&& &&& QToolButton *
&&& &&& QToolButton *
&&& &&& QToolButton *
&&& &&& QSlider *
&&& &&& QHBoxLayout *keyL
&&& &&& QGridLayout *mainL
&&& &&& QLabel *mp3T
&&& &&& QLabel *mp3A
&&& &&& QLabel *mp3A
&&& &&& QLabel *mp3T
&&& &&& QLabel *mp3L
&&& &&& QTimer *
&&& &&& QString fileN
&&& &&& QString fileP
&&& &&& QStringList musicL
&&& &&& QS
&&& &&& QS
&&& &&& QString Mp3Title_
&&& &&& Tag_Header Mp3H
&&& &&& Tag_Trailer Mp3T
&&& &&& int nC
&&& &&& &&
&&& &&& FILE *
3.Audio_player.cpp 文件
&&& #include"audio_player.h"
int tm =0;&&&&&&&&&&& //分钟
int ts =0;&&&&&&&&&&& //秒
audio_player::audio_player(QWidget *parent, Qt::WindowFlags f)
&&&&&&& : QDialog(parent, f)&&&
&&& &&& QPalette p = this->palette();
&&& &&& p.setColor(QPalette::Window,Qt::black);&& //设置背景色
&&& &&& this->setPalette(p);
&&& &&& timer = new QTimer(this);
&&& &&& mainLayout = new QGridLayout(this);
&&& &&& keyLayout = new QHBoxLayout();&
&&& &&& mp3Title = new QL
&&& &&& mp3Art = new QL
&&& &&& mp3Album = new QL
&&& &&& mp3Time = new QL
&&& &&& mp3Length = new QL
&&& &&& mp3Length->setText("04:23");
&&& &&& p.setColor(QPalette::WindowText,Qt::white);&& //设置前景色&&&
&&& &&& mp3Title->setPalette(p);
&& &&&& mp3Art->setPalette(p);
&&& &&& mp3Album->setPalette(p);
&&& &&& mp3Time->setPalette(p);
&&& &&& mp3Length->setPalette(p);
&&& &&& start = new QToolB&&&&&&&&&&&&&&&&&&&&& //开始
&&& &&& start->setText(tr("start"));
&&& &&& start->setIcon(QPixmap(":/images/3.png"));
&&& &&& start->setIconSize(QPixmap(":/images/3.png").size());
&&& &&& start->setAutoRaise(TRUE);
&&& &&& start->setToolButtonStyle(Qt::ToolButtonIconOnly);
&&& &&& up = new QToolB&&&&&&&&&&&&&&&&&&&&&&&& //上一曲
&&& &&& up->setText(tr("up"));
&&& &&& up->setIcon(QPixmap(":/images/1.png"));
&&& &&& up->setIconSize(QPixmap(":/images/1.png").size());
&&& &&& up->setAutoRaise(TRUE);
&&& &&& up->setToolButtonStyle(Qt::ToolButtonIconOnly);
&&& &&& down = new QToolB&&&&&&&&&&&&&&&&&&&&& &&&&&&&//下一曲
&&& &&& down->setText(tr("down"));
&&& &&& down->setIcon(QPixmap(":/images/5.png"));
&&& &&& down->setIconSize(QPixmap(":/images/5.png").size());
&&& &&& down->setAutoRaise(TRUE);
&&& &&& down->setToolButtonStyle(Qt::ToolButtonIconOnly);
&&& &&& slider = new QSlider(Qt::Horizontal);&&&& &&&&&&&&&&&//音量
&&& &&& slider->setMinimum(40);
&&& &&& slider->setMaximum(120);
&&& &&& slider->setValue(80);
&&& &&& slider->setTickPosition(QSlider::TicksBelow);
&&& &&& p.setColor(QPalette::Window,Qt::blue);
&&& &&& slider->setPalette(p);&&&&&&&&&&
&&& &&& keyLayout->addWidget(mp3Time);
&&& &&& keyLayout->addWidget(up);
&&& &&& keyLayout->addWidget(start);
&&& &&& keyLayout->addWidget(down);
&&& &&& keyLayout->addWidget(mp3Length);
&&&&&&&&&&&&&&&&&&
&&& &&& mainLayout->addWidget(mp3Title,0,0,Qt::AlignHCenter);
&&& &&& mainLayout->addWidget(mp3Art,1,0,Qt::AlignHCenter);
&&& &&& mainLayout->addWidget(mp3Album,2,0,Qt::AlignHCenter);
&&& &&& mainLayout->addWidget(slider,3,0);
&&& &&& mainLayout->addLayout(keyLayout,4,0);
&&& &&& connect(start,SIGNAL(clicked()),this,SLOT(slotOpen()));
&&& &&& connect(up,SIGNAL(clicked()),this,SLOT(slotUp()));
&&& &&& connect(down,SIGNAL(clicked()),this,SLOT(slotDown()));
&&& &&& connect(slider,SIGNAL(valueChanged(int)),SLOT(slotGetVol()));
&&& &&& connect(timer,SIGNAL(timeout()),this,SLOT(slotShowTime()));
&&& &&& fd =::open("/dev/mixer", O_RDWR);&&&&&&& //打开mixer设备,用于音量调节
&&& &&& if (fd ==& - 1)
&&&&& &&&&& perror("unable to open /dev/mixer");
&&&&& &&&&& exit(1);
&&& &&& QDir dir("/mnt/udisk/mp3");&&&&&&&&&&&&&
&&& &&& filePath = tr("/mnt/udisk/mp3/");&&&&&&&&&&&&&&&&&&& //设置播放目录
musicList = dir.entryList(QDir::Files,QDir::Name);&& //遍历播放目录下的所有歌曲
&&& &&& nCount = musicList.size();&&&&&&&&&&&&&&&&&&&&&&&&&& //获得歌曲数目
&&& &&& fileName =& static_cast(musicList.at(0));&& //提取歌曲名称
&&& &&& command=tr("./sbin/madplay ");&&&&&&&&&&&&&
&&& &&& backend = tr(" &");&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& //后台播放
&&& &&& setWindowTitle(tr("Madplayer"));&&&&&&&&&&&&&&&&&&& //设置窗口名称
&&& &&& slotStart();&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& //开始播放
&&& &&& this->sizeHint();&&&
void audio_player::slotOpen()
&&& &&& QFileDialog fileDilog(this);&&&&&&&&&&&&&&&&&&&&& //建立文件对话框
&&& &&& QStringList openL
&&& &&& fileDilog.setFileMode(QFileDialog::AnyFile);
&&& &&& fileDilog.setDirectory (trUtf8("/mnt/udisk/mp3"));
&&& &&& fileDilog.setNameFilter(trUtf8("*.mp3"));&&&&&&&//仅显示 .mp3 文件&&&& &&&&
&&& &&& fileDilog.setViewMode(QFileDialog::List);&&&&&&&//以list方式显示
&&& &&& fileDilog.resize(320,240);&&&&&&&&&&&&&&&&&&&&&&//对话框尺寸&
&&& &&& if (fileDilog.exec())&&&
&&&&&&& &&& openList =fileDilog.selectedFiles();
&&& &&& fileName = static_cast(openList.at(0));&& //获取歌曲路径和名称
&&& &&& fileName.remove(0,15);&&&&&&&&&&&&&&& //移除15个字符的路径,得到歌曲名
&&& &&& system("killall -9 madplay");&&&&&&&& //关闭madplay 进程
&&& &&& slotStart();
int flag =1;
void audio_player::slotShowTime()
&&& &&& char disp_buf[5];
&&& &&& FILE *
&&& &&& char str[30];
&&&& && ts++;
&&&& && if(ts >= 60) {
&&&&&&& &&& tm++;
&&&&&&& &&& ts = 0;
&&&& && if(tm >= 60) {
&&&&&&& &&& tm = 0;
&&&&&&& &&& ts = 0;
&&& &&& sprintf(disp_buf,"%02d:%02d",tm,ts);
&&& &&& QString text = disp_
&&& &&& mp3Time->setText(text);&&&&&&&&&&&&&&&&&&&&&&& //显示时间
&&&&&&& /* 查看当前进程列表中是否有 madplay 进程存在,如果不存在,说明当前歌曲播放完毕,则启动播放下一曲
&&&&&&& */
&&& &&& system("ps |pgrep -l madplay >/usr/run.dat");&
&&& &&& out = fopen ("/usr/run.dat", "r");&
&&& &&& fread (str, sizeof (str), 1, out);
&&& &&& printf("%s\n\r",str);
&&& &&& if(str[0]<48 ) slotDown();
&&& &&& fclose (out);
void audio_player::slotGetVol()
&&& &&& int usr_
&&& &&& usr_volume = slider->value();&&&&&&&&&&&&&&& //设置音量大小
&&& &&& ioctl(fd,MIXER_WRITE(0),&usr_volume);&&&&&&& //调节音量&&&& &&&
void audio_player::slotStart()
&& &&& char *S;
&&& &&& readInfo(fileName);
&&& &&& tm =0;
&&& &&& ts =0;
&&& &&& if(flag!=1)
&&&&&&&&&& {system("killall -9 madplay");flag = 1;}
&&& &&& else
&&& &&& {&&
flag=0;&&&&&&
&&&&&&&&&&& QString command_full =
&&& &&&&&&& command_full.append(filePath);
&&& &&&&&&& command_full.append(fileName);
&&& &&&&&&& command_full.append(backend);
&&& &&&&&&& S = (command_full.toAscii()).data();
&&& &&&&&&& printf("%s\n\r",S);&&&
&&& &&&&&&& timer->start(1000);&&&&&&& //设置定是器的时间为一秒
&&& &&&&&&& system(S);&&
void audio_player::slotUp()
&&& &&& QString command_full =
&&& &&& system("killall -9 madplay");&&&&&&&& //停止播放当前歌曲
&&& &&& index = musicList.indexOf(fileName);& //获取当前歌曲索引&
&&& &&& index--; &&&&&&&&&&&&&&&&&&&&&&&&&&&&&//获取上一曲索引
&&& &&& if(index < 0)
&&&&&&& &&& index = nCount-1;
&&&&&&& /* 根据上一曲索引找到上一曲文件名 */
&&& &&& fileName = static_cast(musicList.at(index));
&&& &&& flag = 1;&&&&&&
&&& &&& slotStart();&&&&&&& //播放
void audio_player::slotDown()
&&& &&& QString command_full =
&&& &&& system("killall -9 madplay");
&&& &&& index = musicList.indexOf(fileName);
&&& &&& index++;
&&& &&& if(index >(nCount-1))
&&&&&&& &&& index = 0;
&&& &&& fileName = static_cast(musicList.at(index));
&&& &&& flag = 1;
&&& &&& slotStart();
void audio_player::Tag_GetTrailer(void)
&&& &&& fseek(fp,-128L,SEEK_END);
&&& &&& fread(Mp3Trailer.Header,3,1,fp);
&&& &&& fseek(fp,-125L,SEEK_END);
&&& &&& fread(Mp3Trailer.Title,30,1,fp);
&&& &&& fseek(fp,-95L,SEEK_END);
&&& &&& fread(Mp3Trailer.Artist,30,1,fp);
&&&&& &&&&&
&&& &&& fseek(fp,-65L,SEEK_END);
&&& &&& fread(Mp3Trailer.Album,30,1,fp);
&&&&&&&&&&&&&&&
&&& &&& fseek(fp,-35L,SEEK_END);
&&& &&& fread(Mp3Trailer.Year,4,1,fp);
&&&&&&&&&&&&&&&&&&
&&& &&& fseek(fp,-31L,SEEK_END);
&&& &&& fread(Mp3Trailer.Comment,28,1,fp);
&&&&&&&& &&&&&&&&&&&&&&&&&
&&& &&& fseek(fp,-1L,SEEK_END);
&&& &&& fread(Mp3Trailer.Cenre,1,1,fp);
&&& /* 读取mp3文件ID3标签 */
void audio_player::Tag_GetHeader(void)
&&& &&& fseek(fp,0,SEEK_SET);
&&& &&& fread(Mp3Header.Header,sizeof(Mp3Header.Header),1,fp);
&&&&&&&&&&&&&&&&& &&&&&&&&&&&
&&& &&& fseek(fp,3,SEEK_CUR);
&&& &&& fread(&Mp3Header.ver,sizeof(Mp3Header.ver),1,fp);
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&& &&& fseek(fp,4,SEEK_CUR);
&&& &&& fread(&Mp3Header.Revision,sizeof(Mp3Header.Revision),1,fp);
&&&&&&&&&&&&&&&&&&&&&&&
&&& &&& fseek(fp,5,SEEK_CUR);
&&& &&& fread(&Mp3Header.Flag,sizeof(Mp3Header.Flag),1,fp);
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&& &&& fseek(fp,6,SEEK_CUR);
&&& &&& fread(Mp3Header.Size,sizeof(Mp3Header.Size),1,fp);
&&& /* 获取mp3文件信息 */
void audio_player::readInfo(QString file)
&&& &&& QString local_
&&& &&& char *S;
&&& &&& QString file_full = fileP
&&& &&& file_full.append(file);
&&& &&& S = (file_full.toAscii()).data();
&&&&&&& /* 以二进制格式打开当前文件进行分析 */
&&& &&& if((fp=fopen(S,"rb"))==NULL)
&&&&&&& &&& printf("ERROR:can't open the file!");
&&&&&&& &&& getchar();
&&&&&&& &&& exit(1);
&&& &&& Tag_GetTrailer();
&&& &&& Tag_GetHeader();
&&& &&& QS
&&& &&& sbuf = (tr(Mp3Trailer.Title)).section("&& " ,0,0);&&&
&&& &&& mp3Title->setText(tr("%1").arg(sbuf,0));&&&&&&&&&& //mp3文件标题
&&& &&& sbuf = (tr(Mp3Trailer.Artist)).section("&& ",0,1);
&&& &&& mp3Art->setText(tr("%1").arg(sbuf,0));&&&&&&&&&&&& //mp3 Artist
&&& &&& sbuf = (tr(Mp3Trailer.Album)).section("& ",0,1);
&&& &&& mp3Album->setText(tr("%1").arg(sbuf,0));&&&&&&&&&& //mp3 Album
&&& &&& fclose(fp);
阅读(1393) | 评论(3) | 转发(0) |
给主人留下些什么吧!~~
这个总的播放时间是假的~~~
固定的时间~~
有办法获得么?
执行down或者up命令后,出现Killall终止命令,也不再播放上一首或者下一首。
好东西啊!就是缺少点后端的执行文件。
请登录后评论。手表上英语RESET、MODE和SET是什么意思?_百度知道
手表上英语RESET、MODE和SET是什么意思?
我有更好的答案
“RESET ”是重置;“MODE” 是模式,比如12小时制,24小时制;“SET” 是设定,设定当前日期,时间。常见手表上的英文字母ST指不锈钢stainless steelSP指芯轴RESET指重设MODE指模式LIGHT指灯SET指设定,设定当前日期,时间
RESET 是重置MODE 是模式:比如12小时制,24小时制SET 是设定,设定当前日期,时间等等
本回答被网友采纳
reset是复位的意思,mode是功能的意思,就是进入选项,选择其他功能:如秒表和闹钟,set是设定的意思,就是设定那个时间
为您推荐:
其他类似问题
您可能关注的内容
reset的相关知识
&#xe675;换一换
回答问题,赢新手礼包&#xe6b9;
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。变频器上的RUN.STOP&#47;RESET.MODE.SET.PU&#47;EXT是什么意思?
变频器上的RUN.STOP&#47;RESET.MODE.SET.PU&#47;EXT是什么意思?我想改一下参数,把转速调下来。谢谢
提问者:网友
什么品牌的变频器?RUN,运行;STOP/RESET:停止,故障复位;MODE:模式选择;SET:设定键,一般用来参数设定;PU/EXT:返回上级菜单;
回答者:网友
相关已解答问题
在移动端查看:
还没有汽配人账号?手表上的SEL键、 SET键、MODE键和LIGHT键分别是什么意思?有什么作用?_百度知道
手表上的SEL键、 SET键、MODE键和LIGHT键分别是什么意思?有什么作用?
SEL键:功能选择键。SET键:功能设置键。MODE键:模式切换功能键LIGHT键:是否亮背光按键。电子表怎么调时间 电子手表怎么调日期电子表是内部装配有电子元件的表,通常分液晶显示数字式和石英指针式两种。戴电子表的人一定都为它的方便和准确性好而感到高兴。它不但能显示时间,而且能显示星期和日期。这是我们就来简单的看看电子表怎么调时间,电子表怎么调日期,电子表怎么调闹钟。一、首先是图标说明:左上角按键:LIGHT;右上角按键:ST/SP;左下角按键:MODE;右下角按键:RESET。二、电子表怎么调时间。调表时,从最初界面开始,显示的是时间。按一次MODE进入秒表。按一次ST/SP开始计时,再按ST/SP停止计时。三、电子表怎么调闹钟。按二次MODE进入闹钟调整。按RESET更改选项,按ST/SP调整时间。闹钟调整:从最出界面开始,同按时按ST/SP和RESET是闹钟开关,同时要注意上面会有个小铃铛图案或别的显示闹钟开关。闹钟响后按RESET关闭闹钟,若按ST/SP暂时停止闹钟,五分钟后会再响。四、电子表怎么调日期。按三次MODE进入时间日期星期调整。1、按ST/SP调整秒。2、按一次RESET,按ST/SP调整分。3、按二次RESET,按ST/SP调整小时(可以选择上下午的或24小时的)。4、按三次RESET,按ST/SP调整日。5、按四次RESET,按ST/SP调整月。6、按五次RESET,按ST/SP调整星期。
为您推荐:
其他类似问题
&#xe675;换一换
回答问题,赢新手礼包&#xe6b9;
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 有点儿意思 mp3 的文章

 

随机推荐