| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5816 人关注过本帖
标题:mciSendString 函数
取消只看楼主 加入收藏
yu965634383
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:119
专家分:195
注 册:2017-9-1
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:5 
mciSendString 函数
mciSendString 函数 怎么进行循环播放音乐啊
搜索更多相关主题的帖子: 函数 循环 播放 音乐 
2017-10-15 13:53
yu965634383
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:119
专家分:195
注 册:2017-9-1
收藏
得分:0 
先单个
弄懂之后再看多个的
我这样写
mciSendStringA ("open \"C:\\Users\\yutang\\Desktop\\ZARD - 负けないで (live).wav\" alias mymusic" , 0 , 0 , NULL);//文件名有空格,则需要在路径的前后加上双引号的转义字符 \" ;

mciSendStringA ("play mymusic repeat" , NULL , 0 , NULL);
没有反应,一次都不播放


[此贴子已经被作者于2017-10-15 17:00编辑过]


菜鸟一枚,求各位大神多多关照。
2017-10-15 16:49
yu965634383
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:119
专家分:195
注 册:2017-9-1
收藏
得分:0 
好的,我试试看

菜鸟一枚,求各位大神多多关照。
2017-10-16 07:32
yu965634383
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:119
专家分:195
注 册:2017-9-1
收藏
得分:0 
MCIERROR mciError = mciSendStringA ("open C:\\Users\\yutang\\Desktop\\1.wav type avivideo alias mymusic" , buf1 , strlen (buf1) , NULL);//文件名有空格,则需要在路径的前后加上双引号的转义字符 \" ;
    puts (buf1);
    if (mciError)
    {
        mciGetErrorStringA (mciError , buf , strlen (buf));
        MessageBoxA (NULL ,buf , "警告" , 1);
    }

    mciSendStringA ("play mymusic repeat" , NULL , 0 , NULL);

我在文件名后面加了个播放方式的指令,就是type avivideo 这个,它居然可以重复播放了,这不是用来播放视频的吗?

我还有个问题: 文件路径可不可以用一个变量来代替啊?
我打算将上面的代码包装起来,写成一个新的函数,而函数的参数就是文件的路径。这样我就可以播放很多歌曲了。我在网上查了很久,但是好像没有这方面的,好郁闷啊。


[此贴子已经被作者于2017-10-17 00:42编辑过]


菜鸟一枚,求各位大神多多关照。
2017-10-17 00:39
yu965634383
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:119
专家分:195
注 册:2017-9-1
收藏
得分:0 
我将函数写了出来
# include <stdio.h>
# include <conio.h>
# include <windows.h>
# include <stdlib.h>
# include <string.h>
# include <io.h>
#pragma comment(lib, "WINMM.LIB")

void MyMusic (char * FileName)
{
    char cmd[1024];
   
    sprintf (cmd , "%s%s%s" , "open ", FileName, " type avivideo alias mymusic");
     MCIERROR mciError = mciSendStringA(cmd, NULL, 0, 0);
//     printf ("%d" , mciError);
    if (mciError)
        return;
    mciSendStringA("play mymusic repeat", NULL, 0, 0);        
}

int main (void)
{
    char FileName[] = "C:\\Users\\yutang\\Desktop\\1.wav";
    MyMusic (FileName);
    return 0;
}
这样写没有反应啊

菜鸟一枚,求各位大神多多关照。
2017-10-17 13:42
yu965634383
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:119
专家分:195
注 册:2017-9-1
收藏
得分:0 
# include <stdio.h>
# include <conio.h>
# include <windows.h>
# include <stdlib.h>
# include <string.h>
# include <io.h>
# pragma comment (lib , "WINMM.LIB")

void GetFileName (char * FilePath , char *FileType)
{
    FILE * fp = fopen ("MusicName.txt" , "w+");
    if (!fp)
        return ;
    _finddata_t FileInfo;
    long findhandle;
    char cmd[260];
    sprintf (cmd , "%s%s" , FilePath , FileType);
    findhandle = _findfirst (cmd , &FileInfo);
    fputs (FileInfo.name , fp);
    while (! _findnext (findhandle , &FileInfo))
    {
        fputs ("\n" , fp);
        fputs (FileInfo.name , fp);
//        printf ("%d\n" , FileInfo.size);
    }
    fputs ("\n" , fp);
    fclose (fp);
}

void PlayAMusic (char * FilePath , char * FileName)
{
    char buf[64];
    char cmd[1024];
    int n = 0;
    for (int i = 0; FileName[i] != '\0'; i++)
    {
        if (FileName[i] == ' ')
        {
            n = 1;
            break;
        }
    }
    if (n == 1)
    {
        sprintf (cmd , "%s%s%s%s" , "open \"" , FilePath , FileName , "\" alias MyMusic");
    }
    else
        sprintf (cmd , "%s%s%s%s" , "open " , FilePath , FileName , " alias MyMusic");
   
    MCIERROR mciError = mciSendStringA (cmd , NULL , 0 , NULL);
    if (mciError)
    {
        mciGetErrorStringA (mciError , buf , sizeof (buf));
        MessageBoxA (NULL , buf , "警告" , 1);
    }
    mciSendStringA ("play MyMusic wait" , NULL , 0 , NULL);
    mciSendStringA ("close MyMusic" , NULL , 0 , NULL);
}

void PlayAllTheMusic (char * FilePath)
{
    FILE *fp = fopen ("MusicName.txt" , "r");
    if (!fp)
        return ;
    char FileName[260];
    while (fgets (FileName , 260 , fp) != 0)
    {
        int n = strlen (FileName);
        FileName[n-1] = '\0';
        puts ("正在播放的歌曲是:\n");
        puts (FileName);
        PlayAMusic (FilePath , FileName);
    }
fclose (fp);
}

int main (void)
{
    char FilePath[] = "D:\\KuGou\\";
    char FileType[] = "*.mp3";
    GetFileName (FilePath , FileType);
    PlayAllTheMusic (FilePath);

    return 0;
}

终于是可以播放了, 非常感谢……

[此贴子已经被作者于2017-10-19 00:49编辑过]


菜鸟一枚,求各位大神多多关照。
2017-10-19 00:06
快速回复:mciSendString 函数
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027834 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved