3.编写代码 终于到编写代码的环节了,由于生成的都是 Exe 的控制台程序,要在 C#中调用的话可以使用 Process 类,以下是调用并获取调用结果的方法
public class Fingerprint { /// <summary> /// 获取音乐指纹 /// </summary> /// <param name="fileName" /> 文件名 /// <returns>指纹</returns> static public string CalculateFingerprint(string fileName) { Process process = new Process(); process.StartInfo.FileName = "codegen.windows.exe"; process.StartInfo.Arguments ="\""+fileName+"\""; process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; process.StartInfo.RedirectStandardOutput = true; process.StartInfo.UseShellExecute = false; process.StartInfo.CreateNoWindow = true; process.Start(); using (StreamReader streamReader = process.StandardOutput) { return streamReader.ReadToEnd(); } } }
调用这个方法可以获取到 Mp3 文件的」乐纹」,这是音乐识别的主要参数。获取到了音乐的乐纹接下来就是提交乐纹并从服务器获取结果了。由于是使用 POST 或 GET 方法来调用 API,所以在 C#中需要模拟 POST 和 GET 请求,这一点可以通过 HttpWebRequest 和 HttpWebResponse 类来实现。以下是实现 POST 和 GET 的的类的实现
public class Fingerprint { /// <summary> /// 获取音乐指纹 /// </summary> /// <param name="fileName" /> 文件名 /// <returns>指纹</returns> static public string CalculateFingerprint(string fileName) { Process process = new Process(); process.StartInfo.FileName = "codegen.windows.exe"; process.StartInfo.Arguments ="\""+fileName+"\"";