Audio im WKWebview abspielen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Audio im WKWebview abspielen

    Moin,

    seit drei Tagen kämpfe ich mit einer eigentlich einfachen Aufgabe: Ich habe eine Audio Datei (m4a, mp3) und möchte diese in einem WKWebView abspielen. Es geht auch um die Anzeige von html, pdf, Text und Bilder. Da erschien mir ein WebView passend. Das ist auch nur ein ganz kleines Bruchstück der App.
    Die Audiodaten liegen erst mal als NSData vor. Nun habe ich mir das so gedacht:

    Quellcode

    1. [_webView loadData: data MIMEType: mimeType characterEncodingName:@"UTF-8" baseURL:url];

    mimeType ist definiert und auch auf Darstellbarkeit getestet. Klappt wunderbar mit Text, pdf und Bildern. Leider nicht mit Audio. Der Player wird angezeigt und die Konsole sagt:

    []<<<< AVOutputDeviceDiscoverySession >>>> __51-[AVOutputDeviceDiscoverySession setDiscoveryMode:]_block_invoke: Setting device discovery mode to DiscoveryMode_PresenceScan
    Das sagt mir nichts und diese Meldung erscheint nur beim ersten Versuch. Der Player sagt "Loading", es passiert aber weiter nichts.



    Als zweite Variante habe ich mir die Audio Daten auf die Platte geschrieben um diese von dort abzuspielen. Leider auch ohne Erfolg. Liegt die Datei auf einem echten WebServer geht's, aber nicht von lokal.


    Quellcode

    1. NSString* filePath = @"http://meine_domain.de/files/audio.m4a";
    2. NSString* html = [NSString stringWithFormat:@"<audio src='%@' controls> </audio>",filePath];
    3. [_webView loadHTMLString:html baseURL:nil];
    Ich habe zig Varianten durchgetestet, an ATS liegt es nicht. Der Player sagt nur "Error"
    Wie muss filePath aussehen, damit es klappt?
  • MyMattes schrieb:

    Nein, ich kenne mich mit einer WKWebView wirklich nicht aus, aber ganz naiv gefragt: Müsste der MIME-Type nicht audio/mpeg sein?
    Ich habe da mehrere ausprobiert, eigentlich ist es audio/x-m4a.


    Das sollte aber gehen, das habe ich überprüft.

    Quellcode

    1. if ([WebView canShowMIMEType:mimeType]) {
    2. NSLog(@"Kann: %@",mimeType);
    3. } else {
    4. NSLog(@"Kann nicht: %@",mimeType);
    5. }
    Kann: audio/x-m4a
  • Tolibi schrieb:

    Welche App? Es geht hier um macOS
    Abgesehen davon, dass du nichts über die Umgebung sagtest und das bei WKWebView auch äußerst irrelevant ist, meine ich natürlich die App*, von der du redest:

    Tolibi schrieb:

    Das ist auch nur ein ganz kleines Bruchstück der App.
    Wenn du die Daten doch in der App schon vorliegen hast, ist es einfacher sie direkt abzuspielen, als dafür den Webview zu verwenden. Der Nutzer sieht ja schließlich nicht, wo die Töne genau herkommen und du brauchst dich nicht mit irgendwelchen Einschränkungen des Webviews bezüglich der Audioausgabe rumärgern.



    *App bezeichnet übrigens Programme sowohl für iOS als auch macOS.
    „Meine Komplikation hatte eine Komplikation.“