当前位置: 首页 > news >正文

网站结构构图建设网站技术公司

网站结构构图,建设网站技术公司,企业网站备案多少钱,求网站建设详细过程我在使用libasound将随机字节写入ALSA播放设备时遇到了很多麻烦。 最终#xff0c;我的目标是能够通过网络路由回放流并让它在远程设备上播放。此问题中提供的代码将WAV文件读入内存并通过snd_pcm_writei将其写入驱动程序并且可以正常工作。 但是#xff0c;这段代码与我正在…我在使用libasound将随机字节写入ALSA播放设备时遇到了很多麻烦。 最终我的目标是能够通过网络路由回放流并让它在远程设备上播放。此问题中提供的代码将WAV文件读入内存并通过snd_pcm_writei将其写入驱动程序并且可以正常工作。 但是这段代码与我正在尝试做的事情之间的关键区别在于我没有立即获得所有数据。 我希望在数据可用时对其进行流式处理。调整上面的示例代码以满足我的需求我最终得到了这样的结论#include #include #include static snd_pcm_t *PlaybackHandle;int init_playback(const char *device, int samplerate, int channels) {int err;printf(Init parameters: %s %d %d\n, device, samplerate, channels);if((err snd_pcm_open(PlaybackHandle, device, SND_PCM_STREAM_PLAYBACK, 0)) 0) {printf(Cant open audio %s: %s\n, device, snd_strerror(err));return -1;}if ((err snd_pcm_set_params(PlaybackHandle, SND_PCM_FORMAT_S16, SND_PCM_ACCESS_RW_INTERLEAVED, channels, samplerate, 1, 500000)) 0) {printf(Cant set sound parameters: %s\n, snd_strerror(err));return -1;}return 0;}int play_bytes(const void *bytes, int len) {snd_pcm_uframes_t frames, count;snd_pcm_uframes_t bufsize, period_size;frames 0;count 0;snd_pcm_prepare(PlaybackHandle);snd_pcm_get_params(PlaybackHandle, bufsize, period_size);printf(bufsize%d\n, (int) bufsize);do {int remaining len - count;int buflen remaining bufsize ? remaining : bufsize;frames snd_pcm_writei(PlaybackHandle, bytes count, buflen);// If an error, try to recover from itif (frames -EPIPE) {printf(EPIPE\n);snd_pcm_prepare(PlaybackHandle);}if (frames 0) {printf(Recovering\n);frames snd_pcm_recover(PlaybackHandle, frames, 0);}if (frames 0){printf(Error playing wave: %s\n, snd_strerror(frames));break;}// Update our pointercount frames;//printf(count%d len%d\n, (int)count, len);} while (count len);// Wait for playback to completely finishif (count len)snd_pcm_drain(PlaybackHandle);return 0;}int close_playback() {snd_pcm_close(PlaybackHandle);return 0;}int main(int argc, char **argv) {if(argc 1) {printf(Usage: %s \n, argv[0]);return -1;}int fd;unsigned long long len;fd open(argv[1], O_RDONLY);// Find the lengthlen lseek(fd, 0, SEEK_END);// Skip the first 44 bytes (header)lseek(fd, 44, SEEK_SET);len - 44;char *data malloc(len);read(fd, data, len);init_playback(default, 44100, 2);play_bytes(data, len);close_playback();return 0;}这段代码可以用gcc playback.c -o playback -lasound 。 我正在使用的WAV文件可以在这里找到。当我运行此代码片段时我根据bufsize对输入数据进行分块根据块大小在播放中会重复播放音频片段。 较大的块大小产生的重复次数少于小块大小。 将此与音频的声音结合起来我相信在每个块的末尾都会重复一个小片段。我使用的参数是样本44100频道2为什么一次性发送整个WAV文件工作而发送它的块不起作用 如何将音频数据块发送给驱动程序并使其正常播放
http://www.pierceye.com/news/548163/

相关文章:

  • led网站制作网站登录后不显示内容
  • 推广网站公司兴义市住房和城乡建设局网站
  • 营销网站建设的公司哪家好创建网站超链接
  • 苏州网站优化排名推广企业网站建设价格
  • 在线制作论坛网站wordpress建立好的网站
  • 网站的功能规范商城网站静态模板下载
  • 双语言网站源码制作网页的软件哪个好
  • 政务网站建设需求网站首页页面代码
  • 网站产品详情页怎么做的用服务器做网站空间
  • 河北网站制作报价长春市建设技工学校网站
  • 盘锦做网站专家常州网站建设企业网站制作
  • 关于建设网站的报告wordpress 视频 广告插件
  • 生态养殖网站模板网赌网站建设多少钱
  • wordpress is长沙百度提升优化
  • 福州网站建设哪个好网页被禁止浏览怎么解决
  • 缩短链接的网站磁力猫引擎
  • 佛山网站到首页排名网站开发招标任务书
  • 网站建设相关专业手机网站建设软件有哪些
  • 做网站编辑累吗平台推广策划
  • 景区网站模板深圳中建南方建设集团网站
  • 深圳市网站建设有补贴吗特殊教育学校网站建设方案
  • 专业电影网站建设建e全景效果图
  • 优惠券网站怎么做的哪里有网站制作
  • 单页网站搭建购买一级域名做网站
  • 优秀设计作品的网站单页网站仿制教程
  • 品牌形象网站有哪些ajs17网站建设
  • 微信公众号手机网站开发文成网站制作
  • 中邮通建设咨询有限公司官方网站网站升级及政务新媒体建设方案
  • 网站建设服务费会计分录宁波市住房与城乡建设部网站
  • 如何申请cn域名做网站wordpress 企业网站主题