2013-08-26 49 views
0

我有一个应用程序,它可以从URL的MP3格式播放音频和到现在为止我一直在使用该任务的WMP控制。 (Interop.WMPLib.dll)如何避免依赖项丢失时的异常? (WMP控制)

但最近我发现我的应用程序不会启动,为没有安装WMP的客户端抛出“System.InvalidOperationException”。

我已经是或者使用其只支持WAV文件或其中仍然需要WMP方法的方法搜索发现的唯一的替代方法。

是否有不需要从客户端太多其他选择? 或者,如果客户端没有安装WMP并且只是在禁用了mp3播放功能的情况下继续运行应用程序,是否有办法忽略该异常?

也许我的实现是造成在启动时就异常密切? 这里的代码,可能是相关的:(我会包括我是如何处理异常只是柜面有什么事我可以在改变)

框架4.0,目标CPU:86

哦,“嵌入互操作类型是‘真’的‘Interop.WMPLib.dll’

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

请问这或多或少兼容? > - <

回答

0

有一个简单的文件检查。在您的程序初始化时,检查文件Interop.WMPLib.dll是否存在于机器上,否则您不允许程序运行

+0

是否有必要在客户端计算机上嵌入在我的应用程序? – Sakuya