c# - 歌曲信息检索

标签 c# audio mci

我正在尝试从C#中的.mp3文件中检索音频播放器的详细信息。

代码片段:

[DllImport("winmm.dll")]

private static extern long mciSendString(string strCommand, StringBuilder strReturn, int iReturnLength, IntPtr hwndCallback);

public static void Close()
{
    _command = "close MediaFile";
    mciSendString(_command, null, 0, IntPtr.Zero);
    isOpen = false;
}

public static void Open(string sFileName)
{
    _command = "open \"" + sFileName + "\" type mpegvideo alias MediaFile";
    mciSendString(_command, null, 0, IntPtr.Zero);
    isOpen = true;
}

public static void Play(bool loop)
{
    if (isOpen)
    {
        _command = "play MediaFile";
        if (loop)
            _command += " REPEAT";
        mciSendString(_command, null, 0, IntPtr.Zero);
    }
}

我的问题是:
  • 如何设置歌曲的音量?
  • 我将如何获得歌曲的比特率/采样率?

  • 我更喜欢使用MCI或NAudio,因为我知道它们的可靠性。

    最佳答案

    设置音量:

    string command = "setaudio MediaFile volume to " + volume.ToString();
    error = mciSendString(Pcommand, null, 0, IntPtr.Zero);
    

    其中volume是介于0和1000之间的int

    msdn上的多媒体引用中提供了完整的mci命令字符串列表,位于:
    set command

    CodeProject上还有一个很好的示例项目,可以完成您尝试执行的大多数操作:
    Simple MCI Player

    高温超导

    保罗

    关于c# - 歌曲信息检索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22710770/

    相关文章:

    winapi - 从 Visual C++ 播放 mp3 的最简单方法

    c# - 库 (DLL) 中的静态变量是否由引用该库的所有进程共享?

    c# - 为使用 IoC.Resolve() 的服务创建单元测试的最佳方法是什么

    android - Kotlin - 如何下载 .mp3 文件并保存到内部存储

    c++ - mciSendString 必须有 "wait"才能听到声音吗?

    c++ - 模拟视频标准对话框

    c# - 从 excel 文件中检索标量

    c# - .net 从父 URI 获取所有目录

    audio - 不同语言(非英语)的PESQ,STOI得分(语音质量)

    java - AudioTrack 未播放完整缓冲区