public VideoFileInformation GetVideoFileInformation(string file) { LogTo.Debug("Determining codec for file {0}...", file); VideoFileInformation videoFileInformation = new VideoFileInformation { StreamDetails = new StreamDetails() }; using (MediaFile mediaFile = new MediaFile(file)) { videoFileInformation.StreamDetails.Audios = GetAudioTracks(mediaFile.Audio).ToList(); videoFileInformation.StreamDetails.Videos = GetVideoTracks(mediaFile.Video).ToList(); videoFileInformation.StreamDetails.Subtitles = GetSubtitleTracks(mediaFile.Text).ToList(); } return videoFileInformation; }
public ViewMediaInfoForm(string path) { InitializeComponent(); var mediaFile = new MediaFile(path); var lines = new List<string>(); { lines.Add(string.Format("Unique ID : {0}", mediaFile.uniqueId)); lines.Add(string.Format("Complete name : {0}", path)); lines.Add(string.Format("Format : {0}", mediaFile.format)); lines.Add(string.Format("File size : {0}", mediaFile.size)); lines.Add(string.Format("Duration : {0}", mediaFile.duration)); lines.Add(string.Format("Overall bit rate : {0}", mediaFile.bitRate)); lines.Add(string.Format("Encoded date : {0}", mediaFile.encodedDate)); lines.Add(string.Format("Writing application : {0}", mediaFile.miGetString("Encoded_Application"))); lines.Add(string.Format("Writing library : {0}", mediaFile.encodedLibrary)); } lines.Add(string.Empty); lines.Add("Video"); foreach (var info in mediaFile.Video) { double bitPerFrame = info.Value.size*8/ ((double) info.Value.width*info.Value.height*info.Value.frameCount); lines.Add(string.Format("ID : {0}", info.Value.uniqueId)); lines.Add(string.Format("Format : {0}", info.Value.format)); lines.Add(string.Format("Format profile : {0}", info.Value.miGetString("Format_Profile"))); lines.Add(string.Format("Format settings : {0}", info.Value.miGetString("Format_Settings"))); lines.Add(string.Format("Codec ID : {0}", info.Value.codecId)); lines.Add(string.Format("Duration : {0}", info.Value.duration)); lines.Add(string.Format("Bit rate : {0}", info.Value.bitRate)); lines.Add(string.Format("Width : {0}", info.Value.width)); lines.Add(string.Format("Height : {0}", info.Value.height)); lines.Add(string.Format("Display aspect ratio : {0}", info.Value.pixelAspectRatio)); lines.Add(string.Format("Frame rate mode : {0}", info.Value.frameRateMode)); lines.Add(string.Format("Frame rate : {0}", info.Value.frameRate)); lines.Add(string.Format("Chroma subsampling : {0}", info.Value.miGetString("ChromaSubsampling"))); lines.Add(string.Format("Bit depth : {0}", info.Value.bitDepth)); lines.Add(string.Format("Scan type : {0}", info.Value.miGetString("ScanType"))); lines.Add(string.Format("Bits/(Pixel*Frame) : {0}", bitPerFrame.ToString("0.#####"))); lines.Add(string.Format("Stream size : {0}", info.Value.miGetString("StreamSize"))); lines.Add(string.Format("Writing library : {0}", info.Value.encodedLibrary)); lines.Add(string.Format("Encoding settings : {0}", info.Value.encoderSettingsRaw)); lines.Add(string.Format("Language : {0}", info.Value.language)); } lines.Add(string.Empty); lines.Add("Audio"); foreach (var info in mediaFile.Audio) { lines.Add(string.Format("ID : {0}", info.Value.uniqueId)); lines.Add(string.Format("Format : {0}", info.Value.format)); lines.Add(string.Format("Codec ID : {0}", info.Value.codecId)); lines.Add(string.Format("Duration : {0}", info.Value.duration)); lines.Add(string.Format("Bit rate mode : {0}", info.Value.bitRateMode)); lines.Add(string.Format("Bit rate : {0}", info.Value.bitRate)); lines.Add(string.Format("Channel(s) : {0}", info.Value.channels)); lines.Add(string.Format("Sampling rate : {0}", info.Value.sampleRate)); lines.Add(string.Format("Bit depth : {0}", info.Value.bitDepth)); lines.Add(string.Format("Compression mode : {0}", info.Value.compressionMode)); lines.Add(string.Format("Stream size : {0}", info.Value.size)); lines.Add(string.Format("Language : {0}", info.Value.language)); } lines.Add(string.Empty); lines.Add("Subtitle"); foreach (var info in mediaFile.Text) { lines.Add(string.Format("ID : {0}", info.Value.uniqueId)); lines.Add(string.Format("Format : {0}", info.Value.format)); lines.Add(string.Format("Muxing Mode : {0}", info.Value.muxingMode)); lines.Add(string.Format("Codec ID : {0}", info.Value.codecId)); lines.Add(string.Format("Language : {0}", info.Value.language)); } textBoxInfo.Lines = lines.ToArray(); }
public ViewMediaInfoForm(string path) { InitializeComponent(); Icon = Gui.Icon; wb_info.PreviewKeyDown += OnBrowserPreviewKeyDown; var mediaFile = new MediaFile(path); var mi = new MediaInfo(); mi.Open(path); var lines = new List<string>(); { lines.Add("<!doctype html>"); lines.Add("<html>"); lines.Add("<head>"); lines.Add("<style>* { padding: 0px; margin: 0px; font-family:tahoma; } body { width: 700px; background: #fff; margin: 0 auto; } table { width: 700px; font-size: 12px; border-collapse: collapse; } td { width: 570px; padding: 5px; border-bottom: 1px dotted #1562b6; word-wrap: break-word; } td:first-child { width: 130px; border-right: 1px solid #1562b6; } .thead { font-size: 15px; color: #1562b6; padding-top: 25px; border: 0px !important; border-bottom: 2px solid #1562b6 !important; } .no-padding { padding-top: 0px !important; }</style>"); lines.Add("</head>"); lines.Add("<body>"); lines.Add("<table border='0' cellspacing='0' cellpadding='0'>"); lines.Add("<tr><td class='thead no-padding' colspan='2'><b>General</b></td></tr>"); lines.Add(string.IsNullOrEmpty(mediaFile.miGetString("UniqueID/String")) ? string.Empty : string.Format("<tr><td>Unique ID:</td><td>{0}</td></tr>", mediaFile.miGetString("UniqueID/String"))); lines.Add(string.IsNullOrEmpty(mediaFile.miGetString("Movie")) ? string.Empty : string.Format("<tr><td>Movie name:</td><td>{0}</td></tr>", mediaFile.miGetString("Movie"))); lines.Add(string.IsNullOrEmpty(mediaFile.miGetString("CompleteName")) ? string.Empty : string.Format("<tr><td>Complete name:</td><td>{0}</td></tr>", mediaFile.miGetString("CompleteName"))); lines.Add(string.IsNullOrEmpty(mediaFile.miGetString("Format")) ? string.Empty : string.Format("<tr><td>Format:</td><td>{0}</td></tr>", mediaFile.miGetString("Format"))); lines.Add(string.IsNullOrEmpty(mediaFile.miGetString("Format_Version")) ? string.Empty : string.Format("<tr><td>Format version:</td><td>{0}</td></tr>", mediaFile.miGetString("Format_Version"))); lines.Add(string.IsNullOrEmpty(mediaFile.miGetString("FileSize/String")) ? string.Empty : string.Format("<tr><td>File size:</td><td>{0}</td></tr>", mediaFile.miGetString("FileSize/String"))); lines.Add(string.IsNullOrEmpty(mediaFile.miGetString("Duration/String")) ? string.Empty : string.Format("<tr><td>Duration:</td><td>{0}</td></tr>", mediaFile.miGetString("Duration/String"))); lines.Add(string.IsNullOrEmpty(mediaFile.miGetString("OverallBitRate/String")) ? string.Empty : string.Format("<tr><td>Overall bitrate:</td><td>{0}</td></tr>", mediaFile.miGetString("OverallBitRate/String"))); lines.Add(string.IsNullOrEmpty(mediaFile.miGetString("Encoded_Date")) ? string.Empty : string.Format("<tr><td>Encoded date:</td><td>{0}</td></tr>", mediaFile.miGetString("Encoded_Date"))); lines.Add(string.IsNullOrEmpty(mediaFile.miGetString("Encoded_Application")) ? string.Empty : string.Format("<tr><td>Writing application:</td><td>{0}</td></tr>", mediaFile.miGetString("Encoded_Application"))); lines.Add(string.IsNullOrEmpty(mediaFile.miGetString("Encoded_Library/String")) ? string.Empty : string.Format("<tr><td>Writing library:</td><td>{0}</td></tr>", mediaFile.miGetString("Encoded_Library/String"))); } lines.Add("<tr><td class='thead' colspan='2'><b>Video</b></td></tr>"); foreach (var info in mediaFile.Video) { lines.Add(string.Format("<tr><td>ID:</td><td>{0}</td></tr>", info.Value.miGetString("ID/String"))); lines.Add(string.IsNullOrEmpty(info.Value.miGetString("Title")) ? string.Empty : string.Format("<tr><td>Title:</td><td>{0}</td></tr>", info.Value.miGetString("Title"))); lines.Add(string.IsNullOrEmpty(info.Value.miGetString("Format")) ? string.Empty : string.Format("<tr><td>Format:</td><td>{0}</td></tr>", info.Value.miGetString("Format"))); lines.Add(string.IsNullOrEmpty(info.Value.miGetString("Format/Info")) ? string.Empty : string.Format("<tr><td>Format info:</td><td>{0}</td></tr>", info.Value.miGetString("Format/Info"))); lines.Add(string.IsNullOrEmpty(info.Value.miGetString("Format_Profile")) ? string.Empty : string.Format("<tr><td>Format profile:</td><td>{0}</td></tr>", info.Value.miGetString("Format_Profile"))); lines.Add(string.IsNullOrEmpty(info.Value.miGetString("Format_Settings")) ? string.Empty : string.Format("<tr><td>Format settings:</td><td>{0}</td></tr>", info.Value.miGetString("Format_Settings"))); lines.Add(string.IsNullOrEmpty(info.Value.miGetString("MuxingMode")) ? string.Empty : string.Format("<tr><td>Muxing mode:</td><td>{0}</td></tr>", info.Value.miGetString("MuxingMode"))); lines.Add(string.IsNullOrEmpty(info.Value.miGetString("CodecID/String")) ? string.Empty : string.Format("<tr><td>Codec ID:</td><td>{0}</td></tr>", info.Value.miGetString("CodecID/String"))); lines.Add(string.IsNullOrEmpty(info.Value.miGetString("Duration/String")) ? string.Empty : string.Format("<tr><td>Duration:</td><td>{0}</td></tr>", info.Value.miGetString("Duration/String"))); lines.Add(string.IsNullOrEmpty(info.Value.miGetString("BitRate/String")) ? string.Empty : string.Format("<tr><td>Bitrate:</td><td>{0}</td></tr>", info.Value.miGetString("BitRate/String"))); lines.Add(string.IsNullOrEmpty(info.Value.miGetString("BitRate_Nominal/String")) ? string.Empty : string.Format("<tr><td>Nominal bitrate:</td><td>{0}</td></tr>", info.Value.miGetString("BitRate_Nominal/String"))); lines.Add(string.IsNullOrEmpty(info.Value.miGetString("Width/String")) ? string.Empty : string.Format("<tr><td>Width:</td><td>{0}</td></tr>", info.Value.miGetString("Width/String"))); lines.Add(string.IsNullOrEmpty(info.Value.miGetString("Height/String")) ? string.Empty : string.Format("<tr><td>Height:</td><td>{0}</td></tr>", info.Value.miGetString("Height/String"))); lines.Add(string.IsNullOrEmpty(info.Value.miGetString("DisplayAspectRatio/String")) ? string.Empty : string.Format("<tr><td>Display aspect ratio:</td><td>{0}</td></tr>", info.Value.miGetString("DisplayAspectRatio/String"))); lines.Add(string.IsNullOrEmpty(info.Value.miGetString("FrameRate_Mode/String")) ? string.Empty : string.Format("<tr><td>Frame rate mode:</td><td>{0}</td></tr>", info.Value.miGetString("FrameRate_Mode/String"))); lines.Add(string.IsNullOrEmpty(info.Value.miGetString("FrameRate/String")) ? string.Empty : string.Format("<tr><td>Frame rate:</td><td>{0}</td></tr>", info.Value.miGetString("FrameRate/String"))); lines.Add(string.IsNullOrEmpty(info.Value.miGetString("ColorSpace")) ? string.Empty : string.Format("<tr><td>Color space:</td><td>{0}</td></tr>", info.Value.miGetString("ColorSpace"))); lines.Add(string.IsNullOrEmpty(info.Value.miGetString("ChromaSubsampling")) ? string.Empty : string.Format("<tr><td>Chroma subsampling:</td><td>{0}</td></tr>", info.Value.miGetString("ChromaSubsampling"))); lines.Add(string.IsNullOrEmpty(info.Value.miGetString("BitDepth/String")) ? string.Empty : string.Format("<tr><td>Bit depth:</td><td>{0}</td></tr>", info.Value.miGetString("BitDepth/String"))); lines.Add(string.IsNullOrEmpty(info.Value.miGetString("ScanType")) ? string.Empty : string.Format("<tr><td>Scan type:</td><td>{0}</td></tr>", info.Value.miGetString("ScanType"))); lines.Add(string.IsNullOrEmpty(info.Value.miGetString("Bits-(Pixel*Frame)")) ? string.Empty : string.Format("<tr><td>Bits/(Pixel*Frame):</td><td>{0}</td></tr>", info.Value.miGetString("Bits-(Pixel*Frame)"))); lines.Add(string.IsNullOrEmpty(info.Value.miGetString("StreamSize/String")) ? string.Empty : string.Format("<tr><td>Stream size:</td><td>{0}</td></tr>", info.Value.miGetString("StreamSize/String"))); lines.Add(string.IsNullOrEmpty(info.Value.miGetString("Encoded_Library/String")) ? string.Empty : string.Format("<tr><td>Writing library:</td><td>{0}</td></tr>", info.Value.miGetString("Encoded_Library/String"))); lines.Add(string.IsNullOrEmpty(info.Value.miGetString("Encoded_Library_Settings")) ? string.Empty : string.Format("<tr><td>Encoding settings:</td><td>{0}</td></tr>", info.Value.miGetString("Encoded_Library_Settings"))); lines.Add(string.IsNullOrEmpty(info.Value.miGetString("Language/String")) ? string.Empty : string.Format("<tr><td>Language:</td><td>{0}</td></tr>", info.Value.miGetString("Language/String"))); lines.Add(string.IsNullOrEmpty(info.Value.miGetString("Default/String")) ? string.Empty : string.Format("<tr><td>Default:</td><td>{0}</td></tr>", info.Value.miGetString("Default/String"))); lines.Add(string.IsNullOrEmpty(info.Value.miGetString("Forced/String")) ? string.Empty : string.Format("<tr><td>Forced:</td><td>{0}</td></tr>", info.Value.miGetString("Forced/String"))); lines.Add(string.IsNullOrEmpty(info.Value.miGetString("colour_range")) ? string.Empty : string.Format("<tr><td>Color range:</td><td>{0}</td></tr>", info.Value.miGetString("colour_range"))); lines.Add(string.IsNullOrEmpty(info.Value.miGetString("colour_primaries")) ? string.Empty : string.Format("<tr><td>Color primaries:</td><td>{0}</td></tr>", info.Value.miGetString("colour_primaries"))); lines.Add(string.IsNullOrEmpty(info.Value.miGetString("transfer_characteristics")) ? string.Empty : string.Format("<tr><td>Transfer characteristics:</td><td>{0}</td></tr>", info.Value.miGetString("transfer_characteristics"))); lines.Add(string.IsNullOrEmpty(info.Value.miGetString("matrix_coefficients")) ? string.Empty : string.Format("<tr><td>Matrix coefficients:</td><td>{0}</td></tr>", info.Value.miGetString("matrix_coefficients"))); } if (mediaFile.Audio.Count > 0) { int audioTracks = 1; foreach (var info in mediaFile.Audio) { lines.Add(mediaFile.Audio.Count == 1 ? "<tr><td class='thead' colspan='2'><b>Audio</b></td></tr>" : string.Format("<tr><td class='thead' colspan='2'><b>Audio #{0}</b></td></tr>", audioTracks)); lines.Add(string.Format("<tr><td>ID:</td><td>{0}</td></tr>", info.Value.miGetString("ID/String"))); lines.Add(string.IsNullOrEmpty(info.Value.miGetString("Title")) ? string.Empty : string.Format("<tr><td>Title:</td><td>{0}</td></tr>", info.Value.miGetString("Title"))); lines.Add(string.IsNullOrEmpty(info.Value.miGetString("Format")) ? string.Empty : string.Format("<tr><td>Format:</td><td>{0}</td></tr>", info.Value.miGetString("Format"))); lines.Add(string.IsNullOrEmpty(info.Value.miGetString("Format/Info")) ? string.Empty : string.Format("<tr><td>Format info:</td><td>{0}</td></tr>", info.Value.miGetString("Format/Info"))); lines.Add(string.IsNullOrEmpty(info.Value.miGetString("CodecID/String")) ? string.Empty : string.Format("<tr><td>Codec ID:</td><td>{0}</td></tr>", info.Value.miGetString("CodecID/String"))); lines.Add(string.IsNullOrEmpty(info.Value.miGetString("Duration/String")) ? string.Empty : string.Format("<tr><td>Duration:</td><td>{0}</td></tr>", info.Value.miGetString("Duration/String"))); lines.Add(string.IsNullOrEmpty(info.Value.miGetString("BitRate_Mode/String")) ? string.Empty : string.Format("<tr><td>Bitrate mode:</td><td>{0}</td></tr>", info.Value.miGetString("BitRate_Mode/String"))); lines.Add(string.IsNullOrEmpty(info.Value.miGetString("BitRate/String")) ? string.Empty : string.Format("<tr><td>Bitrate:</td><td>{0}</td></tr>", info.Value.miGetString("BitRate/String"))); lines.Add(string.IsNullOrEmpty(info.Value.miGetString("Channel(s)/String")) ? string.Empty : string.Format("<tr><td>Channels:</td><td>{0}</td></tr>", info.Value.miGetString("Channel(s)/String"))); lines.Add(string.IsNullOrEmpty(info.Value.miGetString("SamplingRate/String")) ? string.Empty : string.Format("<tr><td>Sampling rate:</td><td>{0}</td></tr>", info.Value.miGetString("SamplingRate/String"))); lines.Add(string.IsNullOrEmpty(info.Value.miGetString("BitDepth/String")) ? string.Empty : string.Format("<tr><td>Bit depth:</td><td>{0}</td></tr>", info.Value.miGetString("BitDepth/String"))); lines.Add(string.IsNullOrEmpty(info.Value.miGetString("Compression_Mode/String")) ? string.Empty : string.Format("<tr><td>Compression mode:</td><td>{0}</td></tr>", info.Value.miGetString("Compression_Mode/String"))); lines.Add(string.IsNullOrEmpty(info.Value.miGetString("StreamSize/String")) ? string.Empty : string.Format("<tr><td>Stream size:</td><td>{0}</td></tr>", info.Value.miGetString("StreamSize/String"))); lines.Add(string.IsNullOrEmpty(info.Value.miGetString("Language/String")) ? string.Empty : string.Format("<tr><td>Language:</td><td>{0}</td></tr>", info.Value.miGetString("Language/String"))); lines.Add(string.IsNullOrEmpty(info.Value.miGetString("Default/String")) ? string.Empty : string.Format("<tr><td>Default:</td><td>{0}</td></tr>", info.Value.miGetString("Default/String"))); lines.Add(string.IsNullOrEmpty(info.Value.miGetString("Forced/String")) ? string.Empty : string.Format("<tr><td>Forced:</td><td>{0}</td></tr>", info.Value.miGetString("Forced/String"))); audioTracks++; } } if (mediaFile.Text.Count > 0) { int textTracks = 1; foreach (var info in mediaFile.Text) { lines.Add(mediaFile.Text.Count == 1 ? "<tr><td class='thead' colspan='2'><b>Text</b></td></tr>" : string.Format("<tr><td class='thead' colspan='2'><b>Text #{0}</b></td></tr>", textTracks)); lines.Add(string.Format("<tr><td>ID:</td><td>{0}</td></tr>", info.Value.miGetString("ID/String"))); lines.Add(string.IsNullOrEmpty(info.Value.miGetString("Format")) ? string.Empty : string.Format("<tr><td>Format:</td><td>{0}</td></tr>", info.Value.miGetString("Format"))); lines.Add(string.IsNullOrEmpty(info.Value.miGetString("CodecID")) ? string.Empty : string.Format("<tr><td>Codec ID:</td><td>{0}</td></tr>", info.Value.miGetString("CodecID"))); lines.Add(string.IsNullOrEmpty(info.Value.miGetString("CodecID/Info")) ? string.Empty : string.Format("<tr><td>Codec ID info:</td><td>{0}</td></tr>", info.Value.miGetString("CodecID/Info"))); lines.Add(string.IsNullOrEmpty(info.Value.miGetString("Compression_Mode/String")) ? string.Empty : string.Format("<tr><td>Compression mode:</td><td>{0}</td></tr>", info.Value.miGetString("Compression_Mode/String"))); lines.Add(string.IsNullOrEmpty(info.Value.miGetString("Language/String")) ? string.Empty : string.Format("<tr><td>Language:</td><td>{0}</td></tr>", info.Value.miGetString("Language/String"))); lines.Add(string.IsNullOrEmpty(info.Value.miGetString("Default/String")) ? string.Empty : string.Format("<tr><td>Default:</td><td>{0}</td></tr>", info.Value.miGetString("Default/String"))); lines.Add(string.IsNullOrEmpty(info.Value.miGetString("Forced/String")) ? string.Empty : string.Format("<tr><td>Forced:</td><td>{0}</td></tr>", info.Value.miGetString("Forced/String"))); textTracks++; } } if (mediaFile.Menu.Count > 0) { int chapterBegin = int.Parse(mi.Get(StreamKind.Menu, 0, "Chapters_Pos_Begin")); int chapterEnd = int.Parse(mi.Get(StreamKind.Menu, 0, "Chapters_Pos_End")); lines.Add("<tr><td class='thead' colspan='2'><b>Menu</b></td></tr>"); foreach (var info in mediaFile.Menu) { for (int i = chapterBegin; i < chapterEnd; i++) { string key = mi.Get(StreamKind.Menu, 0, i, InfoKind.Name); string value = mi.Get(StreamKind.Menu, 0, i); lines.Add(string.IsNullOrEmpty(info.Value.miGetString(key)) ? string.Empty : string.Format("<tr><td>{0}:</td><td>{1}</td></tr>", key, value)); } } } lines.Add("</table></body></html>"); wb_info.DocumentText = string.Join("\n", lines.ToArray()); }
public bool Init(string filepath) { //if( !mediaFile.HasStreams ) { // // 大文字と小文字を区別しない一致 // if( System.Text.RegularExpressions.Regex.IsMatch( // filepath, // "\\.(?:xwm)$", // System.Text.RegularExpressions.RegexOptions.IgnoreCase ) ) { // m_format = "XWM"; // noMediaInfo = true; // return true; // } // if( System.Text.RegularExpressions.Regex.IsMatch( // filepath, // "\\.(?:fuz)$", // System.Text.RegularExpressions.RegexOptions.IgnoreCase ) ) { // m_format = "FUZ"; // noMediaInfo = true; // return true; // } // MainWindowHelper.SetNotifyText( "ストリームを検出できませんでした" ); // return false; //} switch (filepath.getExt().ToLower()) { case ".bms": case ".bme": { m_format = "BMS"; var b = new BMSParse(); b.Read(filepath); m_artist = b.m_ARTIST; m_trackName = b.m_TITLE; return(true); } } var mediaFile = new MediaInfoDotNet.MediaFile(filepath); var dic = new Dictionary <string, string>(); using (var lol = new MediaInfo()) { var prop = lol.GetType().GetField("MustUseAnsi", BindingFlags.Instance | BindingFlags.NonPublic); prop.SetValue(lol, false); if (lol.Open(Uri.UnescapeDataString(filepath)) == 1) { foreach (string entry in lol.Inform().Split('\n')) { var tokens = entry.Split(':'); if (tokens.Length == 2) { dic[tokens[0].Trim()] = tokens[1].Trim(); } } lol.Close(); } } m_format = dic.GetValue("Format"); m_artist = dic.GetValue("Performer"); m_album = dic.GetValue("Album"); m_trackName = dic.GetValue("Track name"); m_trackIndex = dic.GetValue("Track name/Position"); m_trackTotal = dic.GetValue("Track name/Total"); m_discIndex = dic.GetValue("Part name/Position"); m_discTotal = dic.GetValue("Part name/Total"); m_genre = dic.GetValue("Genre"); m_comment = dic.GetValue("Comment"); m_recordedDate = dic.GetValue("Recorded date"); switch (dic.GetValue("Sampling rate")) { case "32.0 KHz": m_sampleRate = 32000; break; case "44.1 KHz": m_sampleRate = 44100; break; case "48.0 KHz": m_sampleRate = 48000; break; case "96.0 KHz": m_sampleRate = 96000; break; default: MessageBox.Show("未対応のサンプリングレート: {0}", dic.GetValue("Sampling rate")); break; } m_duration = mediaFile.General.duration; var tm = m_duration / 1000; var m = (tm / 60) % 60; var h = (tm / 60) / 60;; var s = (tm % 60); //m_playTime = "{0:00}:{1:00}:{2:00}".format( h, m, s ); m_playTime = $"{h:00}:{m:00}:{s:00}"; bitRate = dic.GetValue("Bit rate"); switch (m_format) { case "Wave": case "PCM": detail = $"{dic.GetValue( "Format" )}, {dic.GetValue( "Channel(s)" )}, {dic.GetValue( "Bit depth" )}"; break; case "MPEG Audio": detail = $"{dic.GetValue( "Format" )}, {dic.GetValue( "Format version" )}, {dic.GetValue( "Format profile" )}, {dic.GetValue( "Mode" )}"; break; case "MPEG-4": detail = $"{dic.GetValue( "Format" )}, {dic.GetValue( "Format profile" )}"; break; case "FLAC": detail = $"{dic.GetValue( "Format" )}"; break; } //m_audioCount = mediaFile.Audio.Count; return(true); }