OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4682|回复: 8

ucos 播放mp3延时怎么根据比特率来计算?我现在延时20ms有些歌曲很好,有几首歌曲有点卡。

[复制链接]

115

主题

548

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2078
金钱
2078
注册时间
2013-11-27
在线时间
511 小时
发表于 2015-4-2 17:08:57 | 显示全部楼层 |阅读模式
5金钱
ucos 播放mp3延时怎么根据波特率来计算?我现在延时20ms有些歌曲很好,有几首歌曲有点卡。


我现在每次是取512个字节,比如一个歌曲的比特率是128kps  是不是说每秒钟要送128*1024个字节啊?但是这样算的,貌似不对。

最佳答案

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2015-4-2 17:08:58 | 显示全部楼层
回复

使用道具 举报

115

主题

548

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2078
金钱
2078
注册时间
2013-11-27
在线时间
511 小时
 楼主| 发表于 2015-4-2 22:52:36 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
128*1024/8= 16384

16384/512=32 是这样子算吗?

但是我当时试了的 超过了24都有点卡。还有为什么要除以八啊
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2015-4-2 23:13:36 | 显示全部楼层
回复【3楼】wmh19910511:
---------------------------------
kbps,其中的b=bit不是Byte
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2015-4-2 23:14:24 | 显示全部楼层
MP3的时间计算公式,可以简单的用如下代码求得:
[mw_shl_code=c,true]//获取当前播放的信息 //fx:文件指针 void mp3_get_info(FIL*fx) { static u16 temps=0; u32 temp; temp=VS_Get_DecodeTime(); if(temp!=temps) { temps=temp; if(audiodev.samplerate==0) //获取音频采样率 { audiodev.samplerate=VS_RD_Reg(SPI_AUDATA)&0XFFFE;//舍弃最低位 } temp=VS_Get_HeadInfo(); //得到位速 temp*=1000; if(audiodev.bitrate!=temp) { audiodev.bitrate=temp; audiodev.totsec=fx->fsize/(audiodev.bitrate/8);//重新计算总时间 } } } [/mw_shl_code]
注意,只适用于CBR,VBR就无解了。。。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

115

主题

548

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2078
金钱
2078
注册时间
2013-11-27
在线时间
511 小时
 楼主| 发表于 2015-4-3 20:32:20 | 显示全部楼层
回复【5楼】正点原子:
---------------------------------
这个 貌似是 总时间的计算吧 ,
  

我想知道的是,就是ucos里面比如边放歌边做其他的,任务切换的时间,是不是可以根据比特率来计算呀?
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2015-4-3 22:11:15 | 显示全部楼层
回复【6楼】wmh19910511:
---------------------------------
任务切换的时间,和mp3的波特率有个啥关系啊?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

115

主题

548

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2078
金钱
2078
注册时间
2013-11-27
在线时间
511 小时
 楼主| 发表于 2015-4-7 10:01:17 | 显示全部楼层
回复【7楼】正点原子:
---------------------------------
我是看到 论坛里面 柯南大侠的程序,上面写的

OSTimeDly(10);            //等待时间由当前播放音频的比特率决定
//要想实现自适应音乐比特率,可以读取VS1003的寄存器得到比特率信息,再动态调整等待时间即可。

是不是我理解错了?
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2015-4-7 19:57:40 | 显示全部楼层
回复【8楼】wmh19910511:
---------------------------------
这里delay有点久了。。。
我一般都是延时1个时钟节拍。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-23 08:57

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表