我正在尝试编写一个应用程序,通过mjpeg在Android平板电脑上传输相机。我有mjpeg流媒体工作,如果我用火狐从电脑连接我的手机,我可以看到相机的流。
但是,如果我尝试从同一个应用程序使用webview,我似乎无法从http://localhost:8080/或http://127.0.0.1:8080/加载图像,即使服务器位于设备本身上,并且正在列出在8080港口。
在我的主要活动中,我有这样的代码:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
setContentView(R.layout.activity_main);
mSurfaceHolderHandlerFront=new SurfaceHolderHandler(1,false,8080,PREF_PREVIEW_SIZE_INDEX_DEF,PREF_JPEG_QUALITY_DEF);
mSurfaceHolderHandlerFront.setPreviewDisplay(((SurfaceView) findViewById(R.id.mainsurfaceviewfront)).getHolder());
final PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE);
mWakeLock = powerManager.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, TAG);
mSurfaceHolderHandlerFront.tryStartCameraStreamer();
mWebView = (WebView) findViewById(R.id.activity_main_webview);
// Enable Javascript
WebSettings webSettings = mWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
mWebView.loadUrl("file:///android_asset/www/camera.html");
}
我的camera.html文件如下所示:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link href="css/main.css" type="text/css" rel="stylesheet" />
<title>Camera Tools</title>
</head>
<body>
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td style="vertical-align: top"><img alt="Camera View" border="0" src="http://127.0.0.1:8080/" style="height: 527px" /></td>
<td> </td>
<td style="vertical-align: top; padding-top:5px" >
<table border="1" cellpadding="0" cellspacing="0">
<tr>
<td>Single View</td>
</tr>
<tr>
<td>Multi-View</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>
现在我正走在疯狂的道路上,因为除了砸碎我的设备之外,我确实尝试了一切,而且它不会从本地来源加载。它做了一次,我无法重复它。我不知道这是我改变的代码还是别的什么,但我不知道如何调试这个。如果我从我的电脑通过wifi访问内部服务器mjpeg webserver工作正常,如果我访问远程mjpeg凸轮我的页面工作正常。但是,只要我尝试从运行服务器的手机本身加载它,那么什么都没有。在调试时,我无法从本地webview获得套接字连接上的断点,所以它几乎就像它甚至没有尝试从localhost加载。我是否需要注册一些权限或其他内容才能使用?
注意:我正在华硕FE170CG Fonepad平板电脑上测试此代码。它运行的是Android Kitkat 4.4.2。
有人可以提出任何可能有用的建议吗?
谢谢,
斯蒂德。