diff --git a/Correlator/ViewModels/AudioFileViewModel.cs b/Correlator/ViewModels/AudioFileViewModel.cs index 77ea65c..bfbeb3a 100644 --- a/Correlator/ViewModels/AudioFileViewModel.cs +++ b/Correlator/ViewModels/AudioFileViewModel.cs @@ -21,6 +21,7 @@ public string Title { get; private set; } = string.Empty; public event Action RequestClose; private List _totalFiles; + private List _audioFiles; public List AudioFiles @@ -33,6 +34,18 @@ } } + private string _audioState = "未播放"; + + public string AudioState + { + get => _audioState; + set + { + _audioState = value; + RaisePropertyChanged(); + } + } + private int _pageIndex = 1; public int PageIndex @@ -114,7 +127,10 @@ if (_waveOutEvent.PlaybackState == PlaybackState.Playing) { - _waveOutEvent.Stop(); + _waveOutEvent.Dispose(); + _audioFileReader.Dispose(); + + AudioState = "未播放"; } else { @@ -123,6 +139,9 @@ _audioFileReader = new AudioFileReader(_selectedFile.FullPath); _waveOutEvent.Init(_audioFileReader); _waveOutEvent.Play(); + + //获取时长 + AudioState = $"时长:{_audioFileReader.TotalTime.TotalSeconds}s"; } catch (FormatException) { diff --git a/Correlator/ViewModels/AudioFileViewModel.cs b/Correlator/ViewModels/AudioFileViewModel.cs index 77ea65c..bfbeb3a 100644 --- a/Correlator/ViewModels/AudioFileViewModel.cs +++ b/Correlator/ViewModels/AudioFileViewModel.cs @@ -21,6 +21,7 @@ public string Title { get; private set; } = string.Empty; public event Action RequestClose; private List _totalFiles; + private List _audioFiles; public List AudioFiles @@ -33,6 +34,18 @@ } } + private string _audioState = "未播放"; + + public string AudioState + { + get => _audioState; + set + { + _audioState = value; + RaisePropertyChanged(); + } + } + private int _pageIndex = 1; public int PageIndex @@ -114,7 +127,10 @@ if (_waveOutEvent.PlaybackState == PlaybackState.Playing) { - _waveOutEvent.Stop(); + _waveOutEvent.Dispose(); + _audioFileReader.Dispose(); + + AudioState = "未播放"; } else { @@ -123,6 +139,9 @@ _audioFileReader = new AudioFileReader(_selectedFile.FullPath); _waveOutEvent.Init(_audioFileReader); _waveOutEvent.Play(); + + //获取时长 + AudioState = $"时长:{_audioFileReader.TotalTime.TotalSeconds}s"; } catch (FormatException) { diff --git a/Correlator/Views/AudioFileView.xaml b/Correlator/Views/AudioFileView.xaml index fa4beff..7db2fd4 100644 --- a/Correlator/Views/AudioFileView.xaml +++ b/Correlator/Views/AudioFileView.xaml @@ -31,10 +31,17 @@ - + + + + + + + - + - + + +