本次的实训的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
调用DOS命令,让Windows
Media
Player
帮你播放
你若有别的格式文件,Windows
Media
Player
能识别的都可以播放。
#include
<stdio.h>
void
play_wav(char()
*s){
char()
cm[100]
sprintf(cm,"mplay32.exe
/play
%s",s)
system(cm)
}
main()
{
char()
s[100]="zzd.wav"
play_wav(s)
getchar()
return
0
}
#include <stdio.h>#include <windows.h>
#include <mmsystem.h>
#pragma comment(lib, "winmm.lib")
int main(void)
{
PlaySound("C:\\sounds\\起风了.wav", NULL, SND_FILENAME | SND_ASYNC | SND_LOOP)//这个路径是在我C盘下的路径,所以路径你要改成你电脑下的路径,还有只能播放wav格式的,需要播放MP3格式的要下载mply32文件
while (1)
{
printf("program is running... here\n")//这里跑你的程序,按 Ctrl-C 组合键,结束程序。
Sleep(1000)//休息1秒
}
exit(0)
}