2015-11-06 20 views
5

Sto provando a riprodurre un file M4A (MP4 Audio) direttamente da Internet utilizzando un URL.
Sto utilizzando NAudio con il MediaFoundation per raggiungere questo obiettivo:NAudio - MediaFoundationReader: costruttore non accetta un m4a-URL consegnato (da un youtube-Link)

using (var reader = new MediaFoundationReader(audioUrl)) //exception 
using (var wave = new WaveOutEvent()) 
{ 
    wave.Init(reader); 
    wave.Play(); 
} 

Questo funziona bene su due sistemi di test con Windows 8.1 e Windows 10. Ma sulla mia macchina Windows 7 non funziona, sto ottenendo un eccezione dall'interno del costruttore MediaFoundationReader.
Inizialmente, ricevevo un ArgumentOutOfRangeException. Ho provato a riprodurre questo file m4a in WMP e non è stato possibile riprodurlo. Ho scaricato un pacchetto di codec e l'ho installato. Che hanno contribuito con WMP, ma il mio codice era ancora un'eccezione, anche se un altro:

Un'eccezione incontrollato di tipo 'System.Runtime.InteropServices.COMException' si è verificato in NAudio.dll

Ulteriori informazioni: Ci sono più dati disponibili. (Eccezione da HRESULT : 0x800700EA)

Tutte le idee che cosa potrebbe causare questo e come posso risolvere il problema?

+1

andavo a ** Impostazioni Debug \ Windows \ exception ** e configurarlo per _Break in tutte le Exceptions_. Ispezionare le eccezioni interne dovrebbe fornire un indizio migliore su quale potrebbe essere il problema. – jsanalytics

+0

Inoltre, usando il codice sorgente di Codeplex, sono in grado di scorrere il codice per il costruttore 'MediaFoundationReader()' usando il debugger, senza problemi. Non ho accesso a una macchina Windows7 che potrei usare per riprodurre l'eccezione. "Purtroppo" tutto funziona perfettamente con il mio computer Windows 10. – jsanalytics

+0

Non è possibile riprodurre su win7 sp1. Link al file? – cviejo

risposta

0

A volte l'utente non dispone di privilegi sufficienti per eseguire i metodi COM.

Provare ad eseguire l'applicazione come amministratore.

1

Con qualche ricerca ho identificato questa

0x800700EA può verificarsi quando il sistema operativo Windows diventa danneggiato. Ci possono essere numerose ragioni per cui questo errore si verifica incluse voci di avvio eccessive, errori di registro, declino hardware/RAM , file frammentati, installazioni non necessarie o ridondanti e così via.

Puoi provare si programma in un altro sistema e verificare

+0

L'ho provato sul sistema win7 della mia ragazza, ma si sono verificati strani altri errori e non ha funzionato neanche. Forse anche questo sistema è corrotto (entrambi i PC hanno diversi anni ...). Quindi reinstallerò il mio sistema e riproverò, perché questi errori sono così strani ... Penso che un sistema corrotto sia la ragione. In circa 3 mesi otterrò comunque un nuovo PC molto buono. Grazie per il tuo tempo;) – Aldarion