static void JoinAudioFiles(String audioFolder) { List <String> fileList = new List <String>(); AudioJoinerLameExe audioJoiner = new AudioJoinerLameExe(); foreach (String eachFile in Directory.GetFiles(audioFolder, "*.mp3")) { fileList.Add(eachFile); } audioJoiner.JoinAudio(fileList.ToArray()); }
private Boolean GenerateMp3(WindowParams wndParams, BackgroundWorker bgWorker, out Exception exception) { Boolean status = true; String[] wordArr = null; List <String> mp3FileList = null; HttpClientICiba iCibaClt = null; AudioJoinerLameExe audioJoiner = null; String tempDir = Environment.CurrentDirectory; String wordMp3TempDir = System.IO.Path.Combine(tempDir, "WordsAudio"); String audioJoinTempDir = System.IO.Path.Combine(tempDir, "JoinDir"); exception = null; try { Int32 wordIdx = 0; iCibaClt = new HttpClientICiba(); wordArr = wndParams.WordArray; mp3FileList = new List <String>(); Directory.CreateDirectory(wordMp3TempDir); for (Int32 i = 0; i < wordArr.Length; ++i) { String singleWord = wordArr[i]; if (!String.IsNullOrEmpty(singleWord)) { String wordMp3 = System.IO.Path.Combine(wordMp3TempDir, String.Format("{0}_{1}.mp3", wordIdx.ToString("0000"), singleWord)); wordMp3 = iCibaClt.DownloadAudio(singleWord, wordMp3); if (!String.IsNullOrEmpty(wordMp3)) { mp3FileList.Add(wordMp3); ++wordIdx; } if (null != bgWorker) { bgWorker.ReportProgress(i * 90 / wordArr.Length); } } } audioJoiner = new AudioJoinerLameExe(); audioJoiner.TempDir = audioJoinTempDir; if (!String.IsNullOrEmpty(wndParams.LameFilePath)) { audioJoiner.LameFilePath = wndParams.LameFilePath; } audioJoiner.JoinAudio(mp3FileList, wndParams.FinalMp3File); if (null != bgWorker) { bgWorker.ReportProgress(100); } } catch (Exception ex) { exception = ex; status = false; } finally { if (status) { Directory.Delete(wordMp3TempDir, true); Directory.Delete(audioJoinTempDir, true); } } return(status); }