【问题标题】:How to play a resources file in Windows Media Player from another control's tag in vb.NET如何从 vb.NET 中另一个控件的标记在 Windows Media Player 中播放资源文件
【发布时间】:2015-01-26 11:09:40
【问题描述】:

我有一个图片框,其中有一个 My.Resources 链接到存储在 Tag 属性中的 .mp3 文件:

PictureBox1.Tag = My.Resources.AudioFile

然后我尝试将其加载到 Windows Media Player 对象中

Dim Player As New WindowsMediaPlayer
Player.URL = PictureBox1.Tag
Player.controls.play()

当我尝试这个时,我得到了错误:

从“Byte()”类型到“String”类型的转换无效。

凭直觉我尝试了My.Resources.AudioFile.ToString但这产生了错误:

所选文件的扩展名 (.Byte[]) 无法被 Windows Media Player 识别,但播放器仍然可以播放它。由于播放器不知道扩展名,因此您应该确保该文件来自可信赖的来源。

我真的不希望用户每次播放声音时都必须接受这个对话框。有没有办法从资源路径转换播放?

【问题讨论】:

  • WMP 只支持从文件播放,不能直接使用资源。这将是不使用资源的一个很好的理由。它们还使您的内存占用相当大。如果你想这样做,那么你必须将你的资源写入一个文件。选择任何文件,使用 File.WriteAllBytes() 将您的资源写入文件。并将 URL 属性设置为该文件。

标签: vb.net embedded-resource windows-media-player


【解决方案1】:

见下面代码sn-p

ResourceManager rm = Properties.Resources.ResourceManager;
SoundPlayer sound = new SoundPlayer();

sound.Stream = Properties.Resources.IntroSound;
sound.PlayLooping();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-28
    • 1970-01-01
    • 2010-10-13
    • 1970-01-01
    • 2012-06-13
    相关资源
    最近更新 更多