Метод shouldInterceptRequest() вызывает не все ресурсы

#android #webview #webviewclient

#Android #webview #webviewclient

Вопрос:

Я внедрил webviewclient в свой код для доступа к некоторому html-контенту в моем коде Android. Я задал условие в методе shouldInterceptRequest () для получения вызова файла mp3, чтобы я мог изменить его во время выполнения. в первый день он был успешно реализован, но теперь метод никогда не вызывает эти mp3-файлы. я еще не изменил код, но все еще не понимаю, где я делаю неправильно

Мой Html-файл пока хранится локально, я сохранил его вручную, но он будет загружен с php-сервера. Мой реализованный клиент WebView приведен ниже

     myWebView.setWebViewClient(new WebViewClient() {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            MSLogger.msLogD("initSleave", "WebViewClient: "   url   "nview: "   view);
            view.loadUrl(url);
            return true;
        }

        @Nullable
        @Override
        public WebResourceResponse shouldInterceptRequest(WebView view, String request) {
            if (request.contains(".mp3")) {
                if (prefs.getLanguage().equalsIgnoreCase("Hi")) {
                    try {
                   request= request.replace(".mp3", "_hindi.mp3");
                    request=request.replace("file://","");
                        return new WebResourceResponse("audio/mp3", "UTF-8", new FileInputStream(request));
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            }
            return super.shouldInterceptRequest(view, request);
        }

        @Override
        public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
            Log.d("RequestView", "----->"   request);
            return super.shouldOverrideUrlLoading(view, request);
        }

        @Nullable
        @Override
        public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) {
            Log.d("RequestView", "----->"   request);
            return super.shouldInterceptRequest(view, request);
        }
    });
  

Я хочу, когда webclient вызовет файл ресурсов mp3, упомянутый в моем содержимом Sleave (Html). Но теперь он вызывает только все png, ttf, css и XML-файлы

Ответ №1:

Параметр типа MIME для .mp3 следует изменить на audio / mpeg

документ: https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Complete_list_of_MIME_types

=O