如何获得mp3曲目的持续时间?

时间:2015-01-20 13:14:40

标签: c# audio windows-phone-8.1

我想问一下如何在app中获取音频文件的长度。

我正在加载这样的音轨

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();

但我不知道如何获得赛道的持续时间?

2 个答案:

答案 0 :(得分:7)

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

   var audioFile = await mp3FilesFolder.GetFileAsync("sound.mp3");
   MusicProperties properties = await audioFile.Properties.GetMusicPropertiesAsync();
   TimeSpan myTrackDuration = properties.Duration;
  • 第二个选项是从 MediaElement BackgroundMediaPlayer
  • 获取 NaturalDuration

答案 1 :(得分:1)

假设mediaPlayerMediaElement,您可以使用MediaElement.NaturalDuration获取持续时间。