本文详细介绍基于libmad 的简单MP3流媒体播放器的实现
4.创建线程
本文使用 POSIX 线程库(pthreads)来创建线程。比如,本文需要两个线程,一个是数据接收线程,另一个是音乐播放线程。创建线程的程序如下所示:
清单 10:创建线程
ret_val = pthread_create(&thread[0],
NULL,
get_http_content,
&read_val);
if (ret_val != 0) {
printf("Cannot create get_http_content thread!
");
return 1;
}
ret_val = pthread_create(&thread[1],
NULL,
play_http_content,
&read_val);
if (ret_val != 0) {
printf("Cannot create play_http_content thread!
");
return 1;
}
pthread_join(thread[0], NULL);
pthread_join(thread[1], NULL);可以看到,数据接收线程的线程主函数是 get_http_content, 而播放音乐的线程主函数是 play_http_content。创建子线程后,主线程调用 pthread_join() 等待子结束,并释放线程相关资源。
5.接收 MP3 流媒体数据
由于 MP3 流媒体数据是在 HTTP 服务器的文件目录中,所以,必须由客户端发送 HTTP 请求,然后得到相关 URL 的 HTTP 响应。HTTP 的请求格式如下:
<Method> <Request-URI> <HTTP-1.x> CRLF
*(( general-header
| request-header
| entity-header ) CRLF)
CRLF
[ message-body ]
责编:豆豆技术应用
正在加载评论...
- Linux/Unix新闻
- Linux/Unix入门
- Linux/Unix命令
- Linux/Unix安装
- Linux/Unix编程
- Linux/Unix管理
- Linux/Unix桌面
- Linux/Unix内核
- Linux/Unix软件
- Linux/Unix发行版
- redhat/Fedora
- Ubuntu Linux
- IBM AIX
- FreeBSD
- Solaris
- NetBSD
- SCO Unix
- find基本用法
- ldd命令原理及用法例子
- su和sudo命令的区别与使用技巧
- Linux操作系统下的dd命令技巧
- 关于Top命令的参数详解
- 关于Tar命令的使用
- SSH实用技巧及常用命令使用
- Linux后台执行命令
- VI命令使用技巧集锦
- Vmstat命令列出的属性详解
- 如何查看及修改文件读写权限
- 最大可存储的单文件容量
- ext2/ext3文件系统介绍
- 常用压缩格式的压缩解压方法
- Linux系统的引导过程详细解析
- Configure参数解释说明
- Linux下硬盘和分区的命名方法
- 硬链接与软链接的区别
- 权限和所有权模型
- 存储设备的两种表示方法