C# 如何获取mp3曲目的持续时间?

C# 如何获取mp3曲目的持续时间?,c#,audio,windows-phone-8.1,C#,Audio,Windows Phone 8.1,我想问一下如何在应用程序中获取音频文件的长度 我正在像这样加载轨道 var installFolder = Windows.ApplicationModel.Package.Current.InstalledLocation; var resourcesFolder = await installFolder.GetFolderAsync("Resources"); var mp3FilesFolder = await resourcesFolder.GetFolderAsync("mp3Fi

我想问一下如何在应用程序中获取音频文件的长度

我正在像这样加载轨道

var installFolder = Windows.ApplicationModel.Package.Current.InstalledLocation;

var resourcesFolder = await installFolder.GetFolderAsync("Resources");
var mp3FilesFolder = await resourcesFolder.GetFolderAsync("mp3Files");

var audioFile = await mp3FilesFolder.GetFileAsync("sound.mp3");
var stream = await audioFile.OpenAsync(Windows.Storage.FileAccessMode.Read);

mediaplayer.SetSource(stream, audioFile.ContentType);
mediaplayer.Play();

但是我不知道如何获得曲目的持续时间?

假设
mediaPlayer
MediaElement
,您可以使用获得持续时间。

有两种方法获得曲目的持续时间:

  • 第一种方法是使用以下命令直接从文件中读取:
var audioFile=wait mp3filefolder.GetFileAsync(“sound.mp3”);
MusicProperties properties=await audioFile.properties.GetMusicProperties异步();
TimeSpan myTrackDuration=properties.Duration;
  • 第二种选择是从MediaElement或BackgroundMediaPlayer获取其自然适应度

我总是将此时间跨度值设置为0(我尝试了上述两种方法)。有人遇到过同样的问题吗?@Noorul你试过通过MediaElement获取持续时间吗?是的,我尝试了两种方法,下面是我的代码1)TimeSpan duration=MediaElement.NaturalDuration.TimeSpan;和2)MusicProperties MusicProperties=await storageFile.Properties.GetMusicProperties Async();持续时间=音乐停止持续时间@Noorul和MediaElement-你把代码放在哪里了?文件打开后(例如在“打开事件”中)您是否完成了此操作?感谢您的回复,之前我是在分配媒体元素源之后分配它的。我尝试了媒体元素打开事件。很高兴它起作用了,我能得到媒体长度。非常感谢你。