我正在创建一个具有<a class="btn" data-popup-open="popup-1" href="#">More Details</a>
<div class="popup" data-popup="popup-1">
<div class="popup-inner">
<h2>Wow! This is Awesome! (Popup #1)</h2>
<p>Per Serve : 5g Energy : 20kcal Protein : 0.0g FatTotal : 0.0g Saturated 0.0g Carbohydrate : 0.0g Package Size : 1 x 24 x 350 g</p>
<p><a data-popup-close="popup-1" href="#">Close</a></p>
<a class="popup-close" data-popup-close="popup-1" href="#">x</a>
</div>
</div>
<a class="btn" data-popup-open="popup-2" href="#">Quick inquiry</a>
<div class="popup" data-popup="popup-2">
<div class="popup-inner">
<h2>This is the one that wont work(Popup #1)</h2>
<p>Another data that wont appear</p>
<p><a data-popup-close="popup-2" href="#">Close</a></p>
<a class="popup-close" data-popup-close="popup-2" href="#">x</a>
</div>
</div>
多维数组的应用程序,其中包含自定义对象,当按下按钮时,需要播放特定于每个对象的声音。
我运行此方法加载声音,运行没有已知问题:
9x9
但是当我激活另一种播放声音的方法时:
public void setSoundToPlay()
{
OpenFileDialog openFileDiag = new OpenFileDialog();
if ((bool)openFileDiag.ShowDialog())
{
audio = new MediaPlayer();
audio.Open(new System.Uri(openFileDiag.FileName));
}
}
我得到 public void buttonActivated()
{
audio.Play();
}
运行mediaplayer对象的对象嵌套在另一个对象中,就是这个问题。我尝试了解线程但没有取得进展。
在某些情况下,我还需要让所有声音能够立即播放。这是这项工作的最佳对象吗?
答案 0 :(得分:1)
使用与媒体播放器元素关联的Dispatcher属性,如此
public void buttonActivated()
{
audio.Dispatcher.Invoke(() =>
{
audio.Play();
});
}
答案 1 :(得分:0)
要从其他方法访问此类设备,请使用
Application.Current.Dispatcher.BeginInvoke(new Action(() => objectName);