public static void TrimMp3(MusicItem sourceMp3, TimeSpan?begin, TimeSpan?end) { var outputPath = sourceMp3.FullFileName.Replace(Path.GetFileNameWithoutExtension(sourceMp3.FullFileName), $"{Path.GetFileNameWithoutExtension(sourceMp3.FullFileName)}_trimed"); using (var reader = new Mp3FileReader(sourceMp3.FullFileName)) using (var writer = File.Create(outputPath)) { Mp3Frame frame; while ((frame = reader.ReadNextFrame()) != null) { if (reader.CurrentTime >= begin || !begin.HasValue) { if (reader.CurrentTime <= end || !end.HasValue) { writer.Write(frame.RawData, 0, frame.RawData.Length); } else { break; } } } } sourceMp3.FullFileName = outputPath; }
public void AddMusicItem(MusicItem m) { var sqlItems = Get(m); SetInsertIntoSql(xmConsts.MusicItems, sqlItems); ExecuteSql(); }
private void SaveFiles(IDatabaseProvider dbController, List <string> files) { foreach (var fi in files) { try { var ii = TagLib.File.Create(fi); UltraID3 u = new UltraID3(); u.Read(fi); MusicItem ti = new MusicItem(ii, u); if (!dbController.Match(ti)) { dbController.AddMusicItem(ti); cnt++; ReportProgressOn(); } else { // similar file already exists in db } } catch (Exception ex) { // throw; } } }
public void AddToUsbList(MusicItem m) { var sqlItems = new SqlItemList(); sqlItems.Add(new SqlItem("UserId", GlobalAppData.CurrentUser.Id)); sqlItems.Add(new SqlItem("ItemId", m.Id)); SetInsertIntoSql(xmConsts.UserUsbList, sqlItems); ExecuteSql(); }
public void Update(MusicItem m) { var sqlItems = Get(m); SetUpdateSql(xmConsts.MusicItems, sqlItems, new SqlItemList { new SqlItem { FieldName = "Id", FieldValue = m.Id } }); ExecuteSql(); }
private static SqlItemList Get(MusicItem m) { var sqlItems = new SqlItemList(); sqlItems.Add(new SqlItem("Artist", m.Artist)); sqlItems.Add(new SqlItem("FileName", m.FileName)); sqlItems.Add(new SqlItem("FullFileName", m.FullFileName)); sqlItems.Add(new SqlItem("MachineName", m.MachineName)); sqlItems.Add(new SqlItem("Title", m.Title)); //sqlItems.Add(new SqlItem("ToUsb", m.ToUsb)); //sqlItems.Add(new SqlItem("ToPlaylist", m.ToPlaylist)); return(sqlItems); }
private static string destinationFolder = GlobalAppData.Configs.YoutubeDataFolder;// @"E:\Music\Music Helper Youtube Downloads"; public static MusicItem DownloadAndConvert(string videoUrl) { var newPath = string.Empty; GlobalAppData.SetWait(); try { var youtube = YouTube.Default; var vid = youtube.GetVideo(videoUrl); newPath = Path.Combine(destinationFolder, vid.FullName); File.WriteAllBytes(newPath, vid.GetBytes()); var inputFile = new MediaFile { Filename = newPath }; var outputFile = new MediaFile { Filename = $"{newPath}.mp3" }; using (var engine = new Engine()) { engine.GetMetadata(inputFile); engine.Convert(inputFile, outputFile); newPath = $"{newPath}.mp3"; } File.Delete(inputFile.Filename); } catch (Exception ex) { throw; } finally { GlobalAppData.EndWait(); } var ii = TagLib.File.Create(newPath); UltraID3 u = new UltraID3(); u.Read(newPath); MusicItem ti = new MusicItem(ii, u); return(ti); }
public bool Match(MusicItem m) { return(false); }