我没能找到解决我在另一个问题中询问的错误:MediaElements don't work as expected
所以,我决定找到一种不同的方式来运行声音文件 . 经过一番搜索,我发现了一种可能的方法 .
我需要创建一个新的WMPLib.WindowsMediaPlayer对象,然后为其分配相关的文件路径,该路径应该从原始媒体元素中获取 .
string path = music_path[vcoThis.Name.ToString()];
wplayer_music.controls.stop();
wplayer_music.URL = path.ToString();
wplayer_music.controls.play();
这样,声音加载并正确播放 . 但是,这并没有完全解决问题 .
1)首先,它适用于音频,但不适用于视频文件 . 加载视频文件时,我只能听到相关的声音,但看不到任何视觉效果 . 为什么会这样,以及如何解决?我不确定我是对的,但也许我需要为这个WMPLib.WindowsMediaPlayer指定宽度,高度和边距?如果是这样,我找不到分配新值的方法 .
我试过了:
WMPLib.WindowsMediaPlayer.width = 1600;
但我得到的错误是没有这样的定义 . 在我的游戏中,屏幕尺寸可能会有所不同,具体取决于所需的分辨率,因此我需要选择编辑这些值 .
2)第二 - 许多MediaElements都有“MediaOpened”,“MediaEnded”和“MouseDown”等事件 . 有没有办法将这些事件“复制”到WMPLib.WindowsMediaPlayer?
我不知道在代码中编写它的正确方法,所以为给出如此“粗略”的例子道歉 .
我想要的是:
wplayer_music.MediaEndedEvent = vcoThis.MediaEndedEvent;
而我不想要的是:让我们考虑一下vcoThis的MediaEnded激活名为“EndThisAudio”的虚空 .
我不希望这样:
wplayer_music.MediaEndedEvent = EndThisAudio();
再次,为如此丑陋的描述道歉 . 我的意思是,我想从“vcoThis”中获取相关事件,当“vcoThis”可以是不同的MediaElements时,他们可以有不同的事件 . 为所有情况分配一个相同的事件\ void将无法满足我的需求 .
Summary:
我需要了解如何:
1)为WMPLib.WindowsMediaPlayer分配新的宽度,高度和边距
2)将相关事件从相关MediaElement“复制”到WMPLib.WindowsMediaPlayer .