Android WebView воспроизводит аудио с помощью JavaScript - PullRequest
4 голосов
/ 25 сентября 2010

Я пытаюсь очень быстро портировать через html-приложение со звуком воспроизведения (с помощью soundmanager2) на нативное приложение для Android с помощью WebView. Из моих исследований я не нашел никаких доказательств того, что звук, такой как mp3, можно воспроизводить с помощью javascript или любых других методов, использующих WebView.

Моя цель сейчас - быстро портировать через html-приложение и затем в конечном итоге создать действительно нативное приложение без использования WebView.

Пожалуйста, дайте мне знать, если кому-то удалось успешно реализовать воспроизведение звука с использованием WebViews и Javascript или это просто невозможно в настоящее время.

Спасибо.

Ответы [ 2 ]

2 голосов
/ 23 мая 2012

Поиграйте с этим:

if(cm.message().contains("play sound")) {
    //String[] temp = cm.message().split("#");
    AudioManager audiomanager= (AudioManager) getSystemService(AUDIO_SERVICE);
    float actualvolume = (float) audiomanager.getStreamVolume (AudioManager.STREAM_MUSIC);
    float maxVolume= (float) audiomanager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
    float volume = actualvolume/maxVolume;

    if (loaded) {
        soundPool.play(soundID, volume, volume, 1, 54, 1f);
        Log.e("Test", "Played sound");
    }
} else if(cm.message().contains("stop sound")) {
    soundPool.stop(1);
    Log.e("Test","stoped");
}

myWebView.loadUrl("file:///android_asset/timer.html");
soundID = soundPool.load(this, R.raw.sound1,1);
2 голосов
/ 22 ноября 2010

Будет ли это работать для вас?

    mWebView.setWebViewClient(new WebViewClient(){
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            if (url.endsWith(".ogg")){
                Log.d(TAG, "Reproducir archivo OGG");
                Uri tempPath = Uri.parse(url);
                MediaPlayer player = MediaPlayer.create(WebViewVideo.this, tempPath);
                player.start();
                return true;
            }else{
                return super.shouldOverrideUrlLoading(view, url);
            }
        }

    });

Если вы действительно хотите использовать Javascript, вы можете попробовать с document.open () или что-то в этом роде, я не пробовал, но я думаю,это будет работать так же.

Кстати, это тот случай, когда вы хотите воспроизвести этот звук в фоновом режиме, если вы хотите показать реальный проигрыватель, я думаю, что вы должны реализовать View самостоятельно..

И если вы рассматриваете аудио-тег html5, забудьте об этом.AFAIK Froyo не поддерживает его в любом случае.

Надеюсь, это поможет, и еще не слишком поздно.

С уважением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...