private void rtbContent_LinkClicked(object sender, LinkClickedEventArgs e) { Regex reg_voice = new Regex(@"(?<=播放语音\().+(?=\))"); Regex reg_video = new Regex(@"(?<=播放视频\().+(?=\))"); if (reg_voice.IsMatch(e.LinkText)) // 语音信息 { FilgraphManager fm = new FilgraphManager(); string msg_id = reg_voice.Match(e.LinkText).Value; string voice_file = m_wx_voices[msg_id]; fm.RenderFile(voice_file); fm.Run(); } else if (reg_video.IsMatch(e.LinkText)) // 视频信息 { FilgraphManager fm = new FilgraphManager(); string msg_id = reg_video.Match(e.LinkText).Value; string video_file = m_wx_videos[msg_id]; fm.RenderFile(video_file); FrmVideo frm_video = new FrmVideo(); frm_video.FM = fm; frm_video.FileName = video_file; frm_video.Show(); } else // 普通超链接 { Process.Start(e.LinkText); } }
//TODO Fichier déjà utilisé.... surement par Quartz. Essayer de libérer les ressources de la librairie public void Play(Guid id, byte[] file) { objFilterGraph = new FilgraphManager(); audio = (IBasicAudio) objFilterGraph; //pb d'accès concurrenciel string path = ConfigurationManager.AppSettings["MediaCache"] + id + ".mp3"; File.WriteAllBytes(path, file); objFilterGraph.RenderFile(path); objMediaPosition = objFilterGraph as IMediaPosition; objFilterGraph.Run(); tmProgressionFlux = new Timer(1000) { Enabled = true }; tmProgressionFlux.Elapsed += TmProgressionFluxTick; TimerResume(); }
public override void Play() { _quartzFilgraphManager.Run(); _isPaused = false; }