none
我的音樂被中斷了 RRS feed

  • 問題

  • ButtonClick點了會撥放一連串的音樂
    每個音樂大約5-15秒

    private void ButtonClick(object sender, RoutedEventArgs e)
            {
    MediaPlayer player = new MediaPlayer();
    Global.path = @"C:\Project\Practice\Sounds\" + Global.content[0] + ".mp3";
    Global.index = 1;
    play(Global.path);
    }

    public void play(string p)
            {
                MediaPlayer player = new MediaPlayer();
                player.Open(new Uri(p, UriKind.Relative));
                Console.WriteLine("撥放開始:" + p);
                player.Play();
                player.MediaEnded += new EventHandler(player_MediaEnded);
            }

    public void player_MediaEnded(object sender, EventArgs e)
            {
                Console.WriteLine("撥放完畢:" + Global.path);
                Console.WriteLine("index:" + Global.index);
                if (Global.index >= 9 || Global.content[Global.index] == null)
                {
                    Global.index = 1;
                    Console.WriteLine("index=1");
                    return;
                }

                Global.path = @"C:\Project\Practice\Sounds\" + Global.content[Global.index] + ".mp3";
                Global.index++;
                //player.MediaEnded -= new EventHandler(player_MediaEnded);
                play(Global.path);
            }

    有另一邊正在讀取硬體獲得的座標資訊

    但只要加入下面這段
    音樂就不會完整的撥放
    請教各位大神

    private void Window_Loaded(object sender, RoutedEventArgs e)
            {
                dot = new Thread(Eyetracking);
                dot.Start();
                m_timer = new System.Windows.Threading.DispatcherTimer();
                m_timer.Tick += new EventHandler(testFunction);
                m_timer.IsEnabled = true;
            }
            private void testFunction(object sender, EventArgs e)
            {
                Console.WriteLine("x:" + eyex.ToString() + "- y:" + eyey.ToString());
            }

    public void Eyetracking()
            {
                using (var eyeXHost = new EyeXHost())
                {
                    // Create a data stream: lightly filtered gaze point data.
                    // Other choices of data streams include EyePositionDataStream and FixationDataStream.
                    using (var lightlyFilteredGazeDataStream = eyeXHost.CreateGazePointDataStream(GazePointDataMode.LightlyFiltered))
                    {
                        // Start the EyeX host.
                        eyeXHost.Start();

                        // Write the data to the console.
                        lightlyFilteredGazeDataStream.Next += (s, e) =>
                        {
                            //Console.WriteLine("Gaze point at ({0:0.0}, {1:0.0}) @{2:0}", e.X, e.Y, e.Timestamp);
                            eyex = e.X;
                            eyey = e.Y;
                        };// Let it run until a key is pressed.
                        Console.WriteLine("Listening for gaze data, press any key to exit...");
                        Console.In.Read();
                    }
                }
            }

                           
    • 已編輯 Tsujin 2015年11月6日 上午 07:32
    2015年11月6日 上午 06:00

解答

  • 謝謝你的回答

    最後解決了

    我幫m.timer加了interver

    讓他不要瘋狂地執行,佔據掉所有資源

    音樂就正常撥放了

    • 已標示為解答 Tsujin 2015年11月17日 上午 09:04
    2015年11月17日 上午 09:04

所有回覆

  • 先試著把 Timer 的影響移除 , 再試試看, 縮小問題的範圍

    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    2015年11月6日 下午 02:25
    版主
  • 先試著把 Timer 的影響移除 , 再試試看, 縮小問題的範圍

    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    Timer移除就沒問題了
    但是Timer裡之後要放其他東西的
    會用到eyex和eyey
    2015年11月10日 上午 02:59
  • 如果是 Timer 的影響, 建議你使用多執行緒型態的 Timer 替代 DispatcherTimer

    如: System.Threading.Timer, System.Timers.Timer


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    • 已提議為解答 Alex_Lee 2015年11月10日 上午 09:09
    2015年11月10日 上午 04:42
    版主
  • 謝謝你的回答

    最後解決了

    我幫m.timer加了interver

    讓他不要瘋狂地執行,佔據掉所有資源

    音樂就正常撥放了

    • 已標示為解答 Tsujin 2015年11月17日 上午 09:04
    2015年11月17日 上午 09:04