2013-01-21 49 views
0

我有一個c#/xaml的應用程序。我想播放指令聲音,但是如果用戶正在播放背景音樂,我想靜音,或者在播放聲音時臨時降低音量。如何從應用程序控制背景音樂?

目前,我使用xaudio2發揮我在C++中的音頻,並使用一些代表撥打電話到C#在那裏我使用MediaPlayer類從xna framework靜音背景的媒體。

但暫停音樂後,當我通過xaudio2播放我的指令時,我從xna框架中得到System.InvalidOperationException例外。如果我在播放聲音時註釋掉,沒有例外。

我想這是值得注意的是,這不是發生在UI線程上...

我要對這個正確的方式?我找不到任何有關如何完成這一任務的鏈接 - 我正在抓秸稈。

+0

我認爲這樣做是非常不可取的。如果我在手機上播放音樂,我希望應用程序執行的最後一件**事情就是以任何方式攪亂它,包括在其上播放聲音。我希望當音樂已經播放時使用的應用程序是* silent *。任何違反這個規定的行爲都會引發即時的激怒,如果他們不能迅速而輕鬆地沉默(並且注意他們可能會在此時永遠保持沉默),那麼他們會立即**卸載**。我擁有我的手機。不是應用程序。我強烈建議你等待用戶選擇這樣的任何聲音行爲。 – ErikE

+0

好的 - 那麼如果我讓用戶選擇這種行爲,那麼正確的方法是什麼呢? – diamond29

+0

這就是爲什麼我沒有發表我的評論作爲答案...其他人將不得不幫助你。 :) – ErikE

回答

0

事實證明,在我調用MediaPlayer.Pause()之前,我並沒有調用FrameworkDispatcher.Update()。但如果你的應用需要它,這是可能的。