2013-08-26 50 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