Projekt-Anfragen: Tel: 07022/9319004 info@CodeDocu.de Software Entwicklung in C# WPF Asp.Net Core Vba Excel Word SQL-Server EF Linq, UWP Net
#

UWP: MediaElement Casting Fehler

Fehlermeldung: Fehler: Nicht unterstützter Videotyp oder ungültiger Dateipfad
Der Fehler tritt auf, wenn man Videos von einem lokalen Pfad mit Backslash Adresse auf den TV casted.
Betrifft: MediaElement.Source.
Mit MediaElement.SetSource=stream (siehe unten geht es)


Bei einem laden per lokale Adresse entsteht ein Fehler, weil MediaElement lokale Uri nicht akzeptiert.
Hier ist zwar das Laden per Uri richtig, aber der Uri-Pfad ist ein lokaler Pfad, auf den diese App nicht zugreifen kann.
Lokale Uri beginnen wie bei Web-URL mit der file:// adresse und sind somit vom festen Laufwerk.


Eigentlich sollte die App ja Zugriff bekommen, sobald man sich über einen Folderpicker den Zugriff zu dem Verzeichnis holt,
aber bei mir blieb auch danach die Datei nicht erreichbar


Auch wenn die Adresse über einen FilePicker ein mal geladen wurde und somit die Zugriffsrechte auf das Verzeichnis freigegeben wurden,
dann kann ein MediaElement dennoch nicht auf das File per Zuweisen der Source mit einer lokalen Uri Adresse gestartet werden


//< Load new Video >
//* [actualeXAML-Folder]/Assets/_Videos/Demo01.mp4
//string sPath = ucControl.Path;

string sPath = "C:\\_Daten\\Videos\\Test\\test.wmv";
var uriLocal = new System.Uri(sPath);
var mySourceUri = new Uri(uriLocal.AbsoluteUri);

ctlVideo.Source = mySourceUri;
//</ Load new Video >


MediaElement mit einer lokalen URI file Adresse werden nicht geladen über MediaElement.Source.


LÖSUNG WICHTIG:
Die direkte Anzeige funktioniert, wenn man das MediaElement per .SetSource= stream zuweist.
Local wird das Video angezeigt, ohne Streaming/Cast zum TV

Der folgende Code lädt ein Video in ein MediaElement mit einer lokalen file Adresse. Die Anzeige auf dem Monitor des PC, Laptop unter Windows 10 funktioniert,
aber die Anzeige auf einem remote-Fernseher via Miracast durch

////string sPath = "C:\\_Daten\\Videos\\Test\\test.wmv";
//string sPath = "C:\\_Daten\\Desktop\\UWP\\Show_Photos_Videos_on_TV\\Show_Photos_Videos_on_TV\\Show_Photos_Videos_on_TV\\Assets\\_Videos\\test.wmv";
////--< Load Image from Network - File > --
string sPath = ucControl.Path;
StorageFile storFile = await StorageFile.GetFileFromPathAsync(sPath);
IRandomAccessStream stream = await storFile.OpenAsync(FileAccessMode.Read);

//< anzeigen >
ctlVideo.SetSource(stream, storFile.ContentType);
//</ anzeigen >




Hinweis: Das Senden an den lokalen Fernseher funktioniert über diesen Code.
Hierbei wird mittels der .GetAsCastingSouce() vom Video-MediaElement einer Connection zum TV diese als Casting Quelle einmalig zugewiesen.
Das funktioniert sehr gut bei Files die im Unterverzeichnis liegen mit [app]/Unterverzeichnis wie die Assests oder files auf einem NAS Share-Laufwerk.
Aber eben nicht mit lokalen Adressen, die einem Backslash haben

//----< CAST >-----
if (objSelected_Casting_Device != null)
{
if (actCast_Source_Type != (int)enum_Type_Cast_Source.Video)
{
await cnCast_Connection.DisconnectAsync();
actCast_Source_Type = (int)enum_Type_Cast_Source.Video;
objCast_Source = ctlVideo.GetAsCastingSource();
await cnCast_Connection.RequestStartCastingAsync(objCast_Source);
}

}
//----</ CAST >-----






Mobile
»
Error CS0103: The name ApplicationData does not exist in the current context
»
Registration of the app failed. 0x80073CF3
»
Fehler: Buildaktion Page wird von der spezifischen Kombination der Projektziele nicht unterstützt.
»
UWP Fehler: ApplicationView does not contain a definition for TryEnterViewModeAsync
»
UWP Fehler: CS0012 IAsyncAction You must add a refernece to assembly Windows
»
UWP Fehler: Das App-Manifest verweist auf das Bild, das keinen Kandidaten im Haupt-App-Paket hat
»
UWP: Innere Höhe eines Textblock oder Textbox Elements ermitteln
»
UWP: Angezeigter Text in einem Textblock zur letzten Zeile scrollen
»
UWP Fehlermeldung: Layout cycle detected
»
UWP: Triggers nicht supported

.

Jobs, Projekte, Angebote für Freiberufler, Selbstständig an Info@CodeDocu.de