相关疑难解决方法(0)

HTML5视频:强制中止缓冲

如何在HTML5视频上强制中止事件?我有一个叠加层,当我关闭它时,视频应暂停播放然后停止缓冲.但是,我的互联网连接仍然疯狂.哦,我在Mac OS X 10.6上使用Chrome 7.0.5.

我尝试了几件事 - 它们都没有奏效:

(对于那些不熟悉XUI的人来说,x $就像jQuery包装函数一样)

首先,调度中止HTML事件:

var videoEl = x$('#video_el')[0];
videoEl.pause();
var evObj = document.createEvent('HTMLEvents');
evObj.initEvent('abort', false, false);
videoEl.dispatchEvent(evObj);
Run Code Online (Sandbox Code Playgroud)

接下来,更改src然后强制加载:

var videoEl = x$('#video_el')[0];
videoEl.pause();
videoEl.src = "";
videoEl.load(); //tried with and without this step
Run Code Online (Sandbox Code Playgroud)

编辑:我的视频元素看起来像这样:

<video id="video_el" src="<video_url>" preload="none" controls="controls" />
Run Code Online (Sandbox Code Playgroud)

同样,这些都不起作用.以前有人遇到过这个问题吗?有什么建议?

总之,我试图强制HTML5视频元素停止缓冲.

谢谢!

video html5

49
推荐指数
2
解决办法
4万
查看次数

Android WebView播放HTML5/h.264/mp4视频,如何获取MediaPlayer

我有Activity一个WebView.我有一个WebChromeClient里面.在其中,有几个回调旨在返回MediaPlayer处理视频位.例如:

@Override
public void onPrepared(MediaPlayer mp) {
    Log.i(TAG, " -------------> onPrepared");
}
Run Code Online (Sandbox Code Playgroud)

当我将MP4流加载到WebView使用HTML <video>标记(通过注入)时,这些都无法触发.

当我finish()进行活动时,logcat会报告这个:

09-13 23:55:24.590: E/MediaPlayer(7949): mOnBufferingUpdateListener is null. Failed to send MEDIA_BUFFERING_UPDATE message.
09-13 23:55:24.680: E/MediaPlayer(7949): mOnBufferingUpdateListener is null. Failed to send MEDIA_BUFFERING_UPDATE message.
09-13 23:55:24.680: E/MediaPlayer(7949): mOnVideoSizeChangedListener is null. Failed to send MEDIA_SET_VIDEO_SIZE message.
09-13 23:55:25.675: E/MediaPlayer(7949): mOnBufferingUpdateListener is null. Failed to send MEDIA_BUFFERING_UPDATE message.
09-13 23:55:26.735: E/MediaPlayer(7949): mOnBufferingUpdateListener is null. Failed to …
Run Code Online (Sandbox Code Playgroud)

java android webview webchromeclient android-mediaplayer

19
推荐指数
1
解决办法
1万
查看次数

Android WebView HTML5视频Spawns MediaPlayer永远存在于三星S4 [发现黑客回答]

从我能够找到的,这似乎特定于最近的三星设备.S4会这样做.Nexus 7不会.

如果带有WebChromeClient的WebView开始播放HTML5视频,则会创建一个MediaPlayer实例.一旦视频结束,似乎没有办法杀死MediaPlayer缺少System.exit(0).

这是我的整个MainActivity.java

package com.test.webviewtest;

import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebChromeClient;
import android.webkit.WebView;

public class MainActivity extends Activity {
    WebView webView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        webView = new WebView(this);
        webView.setWebChromeClient(new WebChromeClient());
        String html = "<video width=\"320\" height=\"240\" controls autoplay>" +
                "<source src=\"http://www.w3schools.com/html/movie.mp4\" " +
                "type=\"video/mp4\"></video>";
        webView.loadData(html, "text/html", null);
        setContentView(webView);
    }

    @Override
    protected void onPause(){
        super.onPause();
        // attempt to kill the MediaPlayer here...
    }

}
Run Code Online (Sandbox Code Playgroud)

自然这在清单中是必需的

<uses-permission android:name="android.permission.INTERNET"/>
Run Code Online (Sandbox Code Playgroud)

一旦您单击视频,logcat就会开始吐出MediaPlayer消息,并且它永远不会停止.在播放视频时有一些有用的但在此之后,它只是记录

02-25 17:13:19.395     220-8584/? V/MediaPlayerService? [470] notify (0x51b7aa00, 3, …
Run Code Online (Sandbox Code Playgroud)

video html5 android webview android-mediaplayer

6
推荐指数
1
解决办法
3627
查看次数

停止在WebView中由网页自动启动Android MediaPlayer

我的Android应用程序的一项活动包含一个显示GrooveShark播放器网页的WebView.当用户点击网页的播放按钮时,活动会自动启动播放该轨道的默认MediaPlayer.一切正常,问题出现在用户关闭此活动和MediaPlayer时,虽然不再播放音轨,但它仍然存在 ......即使应用程序关闭,MediaPlayer仍然存在.杀死它的唯一方法就是强迫应用程序停止......我似乎没什么大不了的,但在某些设备中,当用户在通话后挂机时,这个"僵尸"MediaPlayer突然开始播放即使该应用程序之前已被破坏,该轨道......

这是我的活动代码的摘要:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_song);

    myWV = (WebView) findViewById(R.id.webview);

    WebSettings webSettings = myWV.getSettings();
    webSettings.setJavaScriptEnabled(true);

    myWV.setWebViewClient(new MyWebViewClient());
    myWV.setWebChromeClient(new WebChromeClient());
    myWV.loadUrl(url);
}

@Override
protected void onPause() {
    // TODO Auto-generated method stub
    super.onPause();
    myWV.onPause();
    myWV.pauseTimers();
}

@Override
protected void onResume() {
    // TODO Auto-generated method stub
    super.onResume();
    myWV.onResume();
    myWV.resumeTimers();
}

@Override
protected void onDestroy() {
    // TODO Auto-generated method stub
    super.onDestroy();
    myWV.destroy();
}

private class MyWebViewClient extends …
Run Code Online (Sandbox Code Playgroud)

android android-webview grooveshark android-mediaplayer

4
推荐指数
1
解决办法
4643
查看次数