转载于:http://blog.csdn.net/dux003/article/details/5459423

#include

#include

#include

#include

#include

void usage(const char* self)

{

printf("usage:/n");

printf("/t%s
[-c channels -r rate -s samplesize] wavfile/n",
self);

};

int set_fmt(int fd, int channels, int rate, int
samplesize)

{

int c =
channels;

if
(ioctl(fd, SNDCTL_DSP_CHANNELS, &c) == -1)

exit(1);

if
(ioctl(fd, SNDCTL_DSP_SPEED, &rate) == -1)

exit(1);

if
(ioctl(fd, SNDCTL_DSP_SAMPLESIZE, &samplesize) ==
-1)

exit(1);

return
0;

}

int main(int argc, char **argv)

{

int i =
1;

char*
filename = NULL;

int channels
= 1;

int
samplerate = 8000;

int
samplesize = 16;

int
dsp;

int
fd;

char
buf[1024];

int
len;

if
(argc%2)

{

usage(argv[0]);

exit(1);

}

while (i
< argc)

{

if (argv[i][0] != '-')

{

filename = argv[i];

i++;

}

else

{

if (i+1 < argc)

{   switch
(argv[i][1])

{

case 'c':

channels = atoi(argv[i+1]);

i += 2;

break;

case 'r':

samplerate = atoi(argv[i+1]);

i += 2;

break;

case 's':

samplesize = atoi(argv[i+1]);

i += 2;

break;

default:

perror("bad option/n");

exit(1);

}

}

else

{

perror("bad options/n");

exit(1);

}

}

}

dsp =
open("/dev/dsp", O_RDWR);

if (dsp ==
-1)

{

perror("can not open /dev/dsp/n");

exit(1);

}

set_fmt(dsp,
channels, samplerate, samplesize);

fd =
open(filename, O_RDWR);

if (fd ==
-1)

{

close(dsp);

fprintf(stderr, "can not open file %s/n",
filename);

exit(1);

}

while ((len
= read(fd, buf, 1024)) > 0)

{

write(dsp, buf, len);

}

close(fd);

close(dsp);

return
0;

}

使用/dev/dsp的wav文件播放器源码的更多相关文章

  1. Android音乐播放器源码(歌词.均衡器.收藏.qq5.0菜单.通知)

    一款Android音乐播放器源码,基本功能都实现了 qq5.0菜单(歌词.均衡器.收藏.qq5.0菜单.通知) 只有向右滑动出现,菜单键和指定按钮都还没有添加. 源码下载:http://code.66 ...

  2. 一款非常简单的android音乐播放器源码分享给大家

    一款非常简单的android音乐播放器源码分享给大家,该应用虽然很小,大家常用的播放器功能基本实现了,可能有点还不够完善,大家也可以自己完善一下,源码在源码天堂那里已经有了,大家可以到那里下载学习吧. ...

  3. 一步步实现windows版ijkplayer系列文章之三——Ijkplayer播放器源码分析之音视频输出——音频篇

    一步步实现windows版ijkplayer系列文章之一--Windows10平台编译ffmpeg 4.0.2,生成ffplay 一步步实现windows版ijkplayer系列文章之二--Ijkpl ...

  4. 一步步实现windows版ijkplayer系列文章之二——Ijkplayer播放器源码分析之音视频输出——视频篇

    一步步实现windows版ijkplayer系列文章之一--Windows10平台编译ffmpeg 4.0.2,生成ffplay 一步步实现windows版ijkplayer系列文章之二--Ijkpl ...

  5. 项目源码--Android3D影音播放器源码

      下载源码   技术要点: 1.本地音乐管理 2.音频流的解码 3. UI控件的综合使用 4. 视频流的解码 5. 动态更换皮肤 6. 3D效果的实现 7. 源码带详细的中文注释 ...... 详细 ...

  6. 实例源码--Android简单音乐播放器源码

      下载源码   技术要点: 1.本地音乐管理 2.在线音乐听歌.下载 3.音频流的解码 4. HTTP通信模块 5. Sqlite数据库 6. 源码带详细的中文注释 ...... 详细介绍: 1.本 ...

  7. 【流媒体开发】VLC Media Player - Android 平台源码编译 与 二次开发详解 (提供详细800M下载好的编译源码及eclipse可调试播放器源码下载)

    作者 : 韩曙亮  博客地址 : http://blog.csdn.net/shulianghan/article/details/42707293 转载请注明出处 : http://blog.csd ...

  8. HTML5音频(自定义mp3播放器源码)

    audio对象 src兼容.ogg .wav .mp3 <audio controls src='data/imooc.wav'></audio> width autoplay ...

  9. H5音乐播放器源码地址

    源码获取 https://pan.baidu.com/s/1pR_bhIFFQWU6TK9ZvrRWIA      安卓安装包下载地址 https://pan.baidu.com/s/1Z8HF5LY ...

随机推荐

  1. Jquery Ajax模版

    $.ajax({ type: "GET", url: "test.json", data: {username:'tt', content:'tt'}, dat ...

  2. Win7使用之查端口,杀进程

    对 Win7 的 cmd 使用不熟练,这里记录下经常用到的命令吧! 查看所有端口占用情况:netstat -ano 查看指定端口占用情况:netstat -ano | findstr "80 ...

  3. python中的单引号双引号和三引号

    python的单引号和双引号没有本质的区别,而三引号有两种作用:注释和换行 一. 单引号中可以包含双引号,双引号中可以包含单引号 print("好好学习,'天天向上'") 结果: ...

  4. python--匿名函数lambda

    Python语言使用lambda关键字来创建匿名函数. 所谓匿名,即不再使用def语句这样标准的形式定义一个函数. lambda只是一个表达式,而不是一个代码块,函数体比def简单很多. 仅仅能在la ...

  5. mysql 数据备份及pymysql模块

    一 IDE工具介绍 生产环境还是推荐使用mysql命令行,但为了方便我们测试,可以使用IDE工具 下载链接:https://pan.baidu.com/s/1bpo5mqj 掌握: #1. 测试+链接 ...

  6. Java_数据交换_JAXB_用法入门

    一.前言 最近有个需求,需要进行xml 与 bean 的相互转化. 使用 JAXB 可完成这个需求. 二.概述 JAXB(Java Architecture for XML Binding) 是一个业 ...

  7. ElasticSearch_学习_00_资源帖

    一.官方资料 1.Elasticsearch 权威指南(中文版) 二.精选资料 1. 全文搜索引擎 Elasticsearch 入门教程-阮一峰 2. 三.参考资料

  8. xml获取指定节点的路径

    引用自http://www.w3school.com.cn/xpath/xpath_syntax.asp XPath 语法 Previous Page Next Page XPath 使用路径表达式来 ...

  9. wordpress 自定义删除后台管理菜单

    <?php /* //wordpress共有5种角色:administrator(管理员) editor(编辑) author(作者) contributor(投稿者) subscriber(订 ...

  10. Java模版引擎:jsp、freemarker、velocity区别

    在java领域,表现层技术主要有三种:jsp.freemarker.velocity. jsp是大家最熟悉的技术优点:1.功能强大,可以写java代码2.支持jsp标签(jsp tag)3.支持表达式 ...