Example #1
0
		private static async Task LoadAllAudioInfoCandidates(AudioInfo[] audioInfoCandidates, Action<AudioInfo> callback) {
			foreach (var candidate in audioInfoCandidates) {
				FastConsole.WriteInfo($"开始获取文件\"{Path.GetFileName(candidate.Path)}\"的网易云音乐ID。");
				TrackInfo trackInfo;
				try {
					trackInfo = await SearchTrackAsync(candidate.Album, candidate.Track);
				}
				catch (Exception ex) {
					FastConsole.WriteException(ex);
					trackInfo = null;
				}
				if (trackInfo is null) {
					FastConsole.WriteWarning($"无法找到文件\"{Path.GetFileName(candidate.Path)}\"的网易云音乐ID!");
				}
				else {
					FastConsole.WriteInfo($"已获取文件\"{Path.GetFileName(candidate.Path)}\"的网易云音乐ID: {trackInfo.Id}。");
					candidate.TrackInfo = new TrackInfo(candidate.Track, candidate.Album, trackInfo.Id);
					_database.TrackInfos.Add(candidate.TrackInfo);
				}
				callback?.Invoke(candidate);
				FastConsole.WriteNewLine();
			}
		}