示例#1
0
        /// <summary>
        /// 提取音频事件
        /// </summary>
        private async void ExecuteExtractAudioCommand()
        {
            if (isExtracting)
            {
                eventAggregator.GetEvent <MessageEvent>().Publish(DictionaryResource.GetString("TipWaitTaskFinished"));
                return;
            }

            if (VideoPath == "")
            {
                eventAggregator.GetEvent <MessageEvent>().Publish(DictionaryResource.GetString("TipNoSeletedVideo"));
                return;
            }

            // 音频文件名
            string audioFileName = VideoPath.Remove(VideoPath.Length - 4, 4) + ".aac";

            Status = string.Empty;

            await Task.Run(() =>
            {
                // 执行提取音频程序
                isExtracting = true;
                FFmpegHelper.ExtractAudio(VideoPath, audioFileName, new Action <string>((output) =>
                {
                    Status += output + "\n";
                }));
                isExtracting = false;
            });
        }