C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: イベントハンドラ発生時の処理について


(過去ログ 144 を表示中)

[トピック内 2 記事 (1 - 2 表示)]  << 0 >>

■84430 / inTopicNo.1)  イベントハンドラ発生時の処理について
  
□投稿者/ タコ (1回)-(2017/07/03(Mon) 13:57:57)

分類:[C#] 

はじめまして。

イベントハンドラ発生時の処理について質問させてください。

[環境]
Windows7 Pro 64bit
Visual Studio2015

[実現したいこと]
コンソールアプリケーションで作成しています。

Media Playerクラスを使用して音声ファイルを再生したり、一時停止したりさせたいのです。

再生は問題なくできたのですが、一時停止はとあるAPIのイベントが発生したときのみ
一時停止させたいのです。
以下のようなソースを書いてみたのですが、一時停止できません。

どこら辺が悪いのかご指摘いただけないでしょうか?
よろしくお願い致します。

== clsTest.cs ==
public clsMediaPlayer m_MediaPlayer;

public clsTest()
{
    m_MediaPlayer = new clsMediaPlayer();
    m_MediaPlayer.PlayFileOpen(new Uri(@"C:\sample\sample.mp4"));

}

private void CompleteEvent(object sender, object args)
{
   // 完了イベント処理
   // 一時停止処理
   m_MediaPlayer.Pause();
}

== clsMediaPlayer.cs ==

    public class clsMediaPlayer
    {
        // Media Playerクラス
        public MediaPlayer m_Player;

        /// <summary>
        /// コンストラクタ
        /// </summary>
        public clsMediaPlayer()
        {
            m_Player = new MediaPlayer();
        }

        /// <summary>
        /// 再生ファイルオープン処理
        /// </summary>
        /// <param name="a_Uri"></param>
        /// <returns></returns>
        public virtual void PlayFileOpen(Uri a_Uri)
        {

            m_Player.Dispatcher.Invoke(new Action(() =>
                    m_Player.Open(a_Uri)));

        }

        /// <summary>
        /// 再生処理
        /// </summary>
        public virtual void Play()
        {

            m_Player.Dispatcher.Invoke(new Action(() =>
                    m_Player.Play()));
        }

        delegate void StopAudio();

        /// <summary>
        /// 一時停止処理
        /// </summary>
        public virtual void Pause()
        {
            //m_Player.Dispatcher.BeginInvoke(new Action(() =>
            //    m_Player.Pause()));

            //m_Player.Dispatcher.Invoke(new Action(() =>
            //    m_Player.Pause()));
                
            m_Player.Dispatcher.BeginInvoke(new StopAudio(m_Player.Pause), null);
        }
    }

引用返信 編集キー/
■84436 / inTopicNo.2)  Re[1]: イベントハンドラ発生時の処理について
□投稿者/ quote (1回)-(2017/07/04(Tue) 13:23:36)
CompleteEventの事ですか?
CompleteEventがイベントを受け取る部分が記載されていないのですが、
CompleteEventと対象イベントはどのように紐付けされているのでしょうか?
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -