Вопрос по android, java, html5, html – HTML Audio в Android Webview

6

Я новичок в HTML и Java, и я пытаюсь воспроизводить аудиофайлы в простом веб-приложении на Android через веб-представление с использованием HTML и Java. Мне удалось заставить это работать на Android 4.0. Это однако не будет работать на 2.3.3 или 2.2. Я провел много исследований, и пока все, что я обнаружил, это то, что они не поддерживаются. Кто-нибудь может подтвердить или опровергнуть это и, возможно, указать мне правильное направление? Вот то, что я работаю на 4.0, но больше ничего.

WebView engine = (WebView) findViewById(R.id.web_engine);

String audioTest =  "< html >" + <br/>
                "< body >" + <br/>
                "< audio id='egSound' preload='auto'  autoplay ='autoplay'>" + <br/>
                "< source src=' www.egSoundUrl.com '>" +                    
                "< /audio>" + <br/>
                "< /body>"  +  
                "< /html>";

engine.loadData(audioTest, "text/html", null);

Как я могу заставить тот же код работать на 2.3.3? В моем исследовании я столкнулся с кем-то, кто смог воспроизвести аудиофайл с помощью тега video, но я не смог заставить его работать. Любые общие знания будут высоко оценены.

Ваш Ответ

4   ответа
0

Tag Audio просто работал для меня, используя.loadUrl("https://webpage.html").

С.loadData(htmlString, "text/html", null) показывал неподдерживаемые сообщения MIME.

1

Просто быстрый вкладыш для любых новых посетителей - попробуйте использовать следующее в вашем коде настроек веб-просмотра:

mWebView.getSettings().setMediaPlaybackRequiresUserGesture(false);

Это успешно исправляет проблему воспроизведения аудио!

0

У меня тоже была такая же проблема, решение сработало для меня это .. использовать Mediaplayer (http://developer.android.com/reference/android/media/MediaPlayer.html) Android для воспроизведения аудио. Вы можете вызвать функцию Android из JavaScript, который вы написали в HTML-файле ..

WebView webView = (WebView) findViewById(R.id.webview);
webView.addJavascriptInterface(new WebAppInterface(this), "Android");
--------------------------------
public class WebAppInterface {

    Context mContext;
    /** Instantiate the interface and set the context */
    WebAppInterface(Context c) {
        mContext = c;
    }

    /** Show a toast from the web page */
    @JavascriptInterface
    public void showToast(String toast) {
        Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show();
    }
}

---------------------------
java sript code

<input type="button" value="Say hello" onClick="showAndroidToast('Hello Android!')" />

<script type="text/javascript">
    function showAndroidToast(toast) {
        Android.showToast(toast);
    }
</script>

Таким образом, вы вызываете аудио из кода Android.

3

Ага. К сожалению, аудиоэлемент HTML5 поддерживается только из Gingerbread.

Я читал, что аудио-тег поддерживается в 2.2 & amp; 2.3, но по какой-то очень странной причине mp3 & amp; ogg кодеков нет. Следовательно, даже если он поддерживается, он бесполезен на телефонах до Android 2.3.

SOLUTION 1 Временное решение для видео-тегов (от 1.6 до 2.2):

<video src="soundfile.mp3" onclick="this.play();"></video>

тот, который вы пробовали?

SOLUTION 2 Другое возможное решение (2.2+) - реализовать JQuery Player с резервной версией Flash, напримерUbaPlayer.

SOLUTION 3 Наконец, есть обходной путь Java другим пользователем StackOverflow, здесь:

..Надеюсь это поможет :)

Похожие вопросы