C语言实现音乐播放器-MCI mcisendString

Python011

C语言实现音乐播放器-MCI mcisendString,第1张

本次的实训的mp3播放器主要涉及到的内容如下:

MCI API :负责音乐的播放,暂停,继续,停止等功能

2)链表的构建

3)文件读取问题

文件存储有很多种方式,将数据写入文件时可以以空格或者回车为结束。

在读取时,不管是硬fscanf还是gets()进行读取,都要注意一点,以gets为例,gets是读到回车符号结尾,但是回车符号会被读取进去。也就是说,需要将读取到的字符串进行处理,最后一个字符要置为‘0’一定要注意这个问题。

还有一个_finddata这个结构体的问题:

此外由于在win10系统下不知道是我个人原因还是大部分人都有的的问题在编译时findnext会报错, 因为_findnext()返回类型为intptr_t而非long型,从“intptr_t”转换到“long”丢失了数据。只需要把一般写的:

long _findfirst( char *filespec, struct _finddata_t fileinfo );

返回值:

如果查找成功的话,将返回一个long型的唯一的查找用的句柄(就是一个唯一编号)。这个句柄将在_findnext函数中被使用。若失败,则返回-1。

参数:

filespec:标明文件的字符串,可支持通配符。比如: .c,则表示当前文件夹下的所有后缀为C的文件。

fileinfo :这里就是用来存放文件信息的结构体的指针。这个结构体必须在调用此函数前声明,不过不用初始化,只要分配了内存空间就可以了。

函数成功后,函数会把找到的文件的信息放入这个结构体中。

int _findnext( long handle, struct _finddata_t *fileinfo )

返回值:

若成功返回0,否则返回-1。

参数:

handle:即由_findfirst函数返回回来的句柄。

fileinfo:文件信息结构体的指针。找到文件后,函数将该文件信息放入此结构体中。

int _findclose( long handle )

返回值:成功返回0,失败返回-1。

参数: handle :_findfirst函数返回回来的句柄

一下为一个简化的版本主要是文件操作:

function.h

function.c

main.c

用socket传输mp3文件到本地计算机内存中保存,然后用你的播放器播放,播放完毕从内存中删除

如果是视频,就分段传输,每一段转换成独立文件,然后计算时间连续播放

媒体文件网络播放其实都是先下载在播放的,这个一般保存到内存中,播放完毕就清除,也就是所谓的缓存了

windows现有的API似乎只支持播放.wav格式的音频,mp3格式恐怕你得再去网上找找开源代码

//    播放音频 "1.wav"

#include <stdio.h>

#include <windows.h>

#pragma comment(lib,"winmm.lib")

int main()

{

    PlaySound ("1.wav",NULL,SND_FILENAME | SND_ASYNC | SND_LOOP)    

    getchar()

    return 0

}