我有一个应用程序,可以播放来自MP3格式的URL的音频,直到现在,我一直在使用WMP控件执行此任务。 (Interop.WMPLib.dll)
但是最近我发现我的应用程序无法启动,对没有安装WMP的客户端抛出“System.InvalidOperationException”。
我通过搜索找到的唯一替代方法是使用仅支持WAV文件的方法,或者仍需要WMP的方法。
有什么替代方案不需要客户太多吗?
或者,如果客户端未安装WMP,而只是在禁用mp3播放功能的情况下继续运行应用程序,是否可以忽略该异常?
我的实现可能会导致启动时关闭异常吗?
以下是可能相关的代码:(我将介绍如何处理异常,以防万一我可以更改其中的内容)
.Net Framework 4.0, objective-c PU:x86
哦,“Interop.WMPLib.dll”的“嵌入Interop类型”为“True”
Imports WMPLib
Public Class frmMain
Inherits System.Windows.Forms.Form
Public Sub New()
MyBase.New()
AddHandler Application.ThreadException, AddressOf OnThreadException
AddHandler AppDomain.CurrentDomain.UnhandledException, AddressOf UnhandledExceptionEventRaised
InitializeComponent()
System.Windows.Forms.Application.EnableVisualStyles()
End Sub
Sub UnhandledExceptionEventRaised(ByVal sender As Object, ByVal e As UnhandledExceptionEventArgs)
If e.IsTerminating Then
Dim o As Object = e.ExceptionObject
MessageBox.Show(o.ToString)
End If
End Sub
Private Sub OnThreadException(ByVal sender As Object, ByVal e As ThreadExceptionEventArgs)
MessageBox.Show(e.Exception.Message & Environment.NewLine & Environment.NewLine & e.Exception.InnerException.ToString)
End Sub
Public WithEvents mp3Player As New WindowsMediaPlayer
'frmMain_Load etc..
Private Sub btnAudio_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAudio.Click
Dim mp3URL As String = "http://host.com/file.mp3"
mp3Player.URL = mp3URL
mp3Player.controls.play()
End Sub
End Class
当然,代码中还有更多内容,但是我只包含任何相关内容。
帮助感激〜!
编辑:我发现这种方法http://content.gpwiki.org/index.php/VBNET:AudioVideoPlayback
差不多兼容吗? >-<
最佳答案
进行简单的文件检查。在程序初始化时,检查计算机上是否存在文件 Interop.WMPLib.dll ,否则,您将不允许程序运行
关于vb.net - 缺少依赖项时如何避免异常? (WMP控制),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18436178/