/// <summary> /// Recognize tag ID3 and metas datas music, from an audio file path /// Audio accepted: mp3, wav, m4a, flac, aac, amr, ape, ogg, wma ... /// </summary> /// <param name="filePath">path to the audio file</param> /// <returns></returns> public IEnumerable <MusicDao> Recognize(string filePath) { // TODO : check duration file before start to 30s var recognizer = new ACRCloudRecognizer(_apiHost, _apiKey, _apiSecretKey); var stuff = recognizer.RecognizeByFile(filePath, 100); var code = int.Parse(stuff.status?.code?.ToString() ?? "0"); // If match and no error code if (stuff != null && stuff.metadata != null && code == 0) { return(Map(stuff.metadata)); } // If no match if (code == 1001) { return(null); } // If an other error occurs var error = int.Parse(stuff.status.code.ToString()) switch { 3001 => "Missing/Invalid Access Key", 3002 => "Invalid ContentType. valid Content-Type is multipart/form-data", 3003 => "Limit exceeded", 3006 => "Invalid parameters", 3014 => "Invalid Signature", 3015 => "Could not generate fingerprint", _ => stuff?.status?.msg?.ToString() ?? "Unknow Error", }; throw new Exception(error); }
public MusicRecognisionSlin() { //Set API config recogniserApiConfigSlin.Add("host", "identify-eu-west-1.acrcloud.com"); recogniserApiConfigSlin.Add("access_key", "ffeea9eb549bf53ae78d55a77523a76a"); recogniserApiConfigSlin.Add("access_secret", "DmWkeTmEURSD6EseTsTOXTUzTaov2IuTtDzR9DqS"); recogniserApiConfigSlin.Add("timeout", 10); // seconds recogniserApiConfigSlin.Add("rec_type", ACRCloudRecognizer.RECOGNIZER_TYPE.acr_rec_type_audio); musicRecogniserSlin = new ACRCloudRecognizer(recogniserApiConfigSlin); }
public static async Task Main() { ACRCloudOptions options = new ACRCloudOptions("**Your host**", "**Your access key**", "**Your access secret**"); ACRCloudRecognizer recognizer = new ACRCloudRecognizer(options); ACRCloudRecognizeResult result = await recognizer.RecognizeByFileAsync(@"**filePath**"); if (result == null) { Console.WriteLine("No result."); } else { Console.WriteLine($"{string.Join(",", result.Artists)} - {result.Title} {(string.IsNullOrEmpty(result.Album) ? "" : $"{{{result.Album}}} ")}[{result.PlayOffset.GetValueOrDefault():g}/{result.Duration.GetValueOrDefault():g}]");