OpenEdv-开源电子网

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

紧急求助,使用VS1053如何实现跳跃播放。实在看不懂手册。

[复制链接]

2

主题

23

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2016-1-4
在线时间
12 小时
发表于 2016-3-8 10:55:02 | 显示全部楼层 |阅读模式
10金钱
求助大家一个问题,我用的是战舰V3的板子,请问怎么用VS1053实现跳跃播放。我弄不太明白它的工作原理。整个播放的过程也模模糊糊的。能不能耽误您点时间给我说说啊。
是先打开音频文件读出4K的音频数据存到buf里,然后再给VS1053发送,一次发32字节,发完之后再读4K,再循环发32字节。。。是这样么?那我该怎么从开始播一下跳到5K的位置?

最佳答案

查看完整内容[请看2#楼]

f_lseek,偏移到指定位置后,读取数据,发送给vs1053即可. 相当于快进快退.这个我们综合实验都实现了的.
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2016-3-8 10:55:03 | 显示全部楼层
f_lseek,偏移到指定位置后,读取数据,发送给vs1053即可. 相当于快进快退.这个我们综合实验都实现了的.
回复

使用道具 举报

2

主题

23

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2016-1-4
在线时间
12 小时
 楼主| 发表于 2016-3-8 13:50:07 | 显示全部楼层
大家帮帮忙啊
回复

使用道具 举报

3

主题

2178

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3323
金钱
3323
注册时间
2013-7-19
在线时间
195 小时
发表于 2016-3-8 14:41:41 | 显示全部楼层
跳跃播放就是送相应位置的数据就行了。
回复

使用道具 举报

2

主题

23

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2016-1-4
在线时间
12 小时
 楼主| 发表于 2016-3-8 15:12:40 | 显示全部楼层
ricefat 发表于 2016-3-8 14:41
跳跃播放就是送相应位置的数据就行了。

一次从音频文件里读4K的数据出来,再一次发32字节给vs1053进行播放,播放完这4K再读4K,再一次32字节的发。。。是这样工作的么?
回复

使用道具 举报

3

主题

2178

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3323
金钱
3323
注册时间
2013-7-19
在线时间
195 小时
发表于 2016-3-8 17:59:41 | 显示全部楼层
Leee 发表于 2016-3-8 15:12
一次从音频文件里读4K的数据出来,再一次发32字节给vs1053进行播放,播放完这4K再读4K,再一次32字节的发 ...

你没有看vs1053的数据手册吧,为什么要读4k 为什么一次要发32字节
回复

使用道具 举报

2

主题

23

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2016-1-4
在线时间
12 小时
 楼主| 发表于 2016-3-9 09:09:57 | 显示全部楼层
ricefat 发表于 2016-3-8 17:59
你没有看vs1053的数据手册吧,为什么要读4k 为什么一次要发32字节

我看到程序里是这么写的。
res=f_read(fmp3,databuf,4096,(UINT*)&br);//读出4096个字节  br 是音频数据的指针
                                adcx=Get_Adc_Average(ADC_Channel_1,10);//通道1,10ms
                                i=0;                                                                                                                                                       
                                do{          //播放循环                                                                                                               
                                        if(VS_Send_MusicData(databuf+i)==0){//给VS10XX发送音频数据
                                                i+=32;
                                        }



还有再问你个问题,咱芯片的ID号在那个地址可以读出来啊?所有的STM32的芯片ID号地址是一样的么?
回复

使用道具 举报

2

主题

23

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2016-1-4
在线时间
12 小时
 楼主| 发表于 2016-3-10 11:13:07 | 显示全部楼层
正点原子 发表于 2016-3-8 10:55
f_lseek,偏移到指定位置后,读取数据,发送给vs1053即可. 相当于快进快退.这个我们综合实验都实现了的.

不好意思原子哥,没看见你的回复。偏移到指定位置后读取数据,不会像快进快退那样中间有停顿吧?
咱们有没有群啊?
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-20 06:32

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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