我修改了Android和MJPEG的MJPEG查看器代码,使用AsyncTask工作(因此可以使用Ice Cream Sandwich(ICS),4.0.4),这是我的代码.
如果有人对如何优化,清理或使用代码做更合适的事情有任何建议,请告诉我.我很感激有两个问题有助于解决:
如果您有设备在流上,然后锁定屏幕并解锁屏幕,它不会恢复播放,直到您杀死并恢复应用程序或旋转屏幕.我尝试使用OnResume()执行某些操作或其他操作导致应用程序崩溃.
特别是我想在MjpegInputStream.java中获取AsyncTask但是无法使其工作.
MjpegActivity.java:
package com.demo.mjpeg;
import java.io.IOException;
import java.net.URI;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import com.demo.mjpeg.MjpegView.MjpegInputStream;
import com.demo.mjpeg.MjpegView.MjpegView;
import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Toast;
public class MjpegActivity extends Activity {
private static final String TAG = "MjpegActivity";
private MjpegView mv;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//sample public cam
String URL = "http://trackfield.webcam.oregonstate.edu/axis-cgi/mjpg/video.cgi?resolution=800x600&%3bdummy=1333689998337";
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
mv = new MjpegView(this);
setContentView(mv);
new DoRead().execute(URL); …Run Code Online (Sandbox Code Playgroud) 我需要从IP摄像头获取mjpeg流,任何人都知道正确的方法吗?我用Google搜索了一下,我找到了这个例子
http://www.anddev.org/mjpeg_on_android_anyone-t1871.html
但是当我试图从主要活动调用的另一个活动中获取流时,我一直被困住了.这里的代码:
主要活动
package com.test;
public class IntentTest extends Activity {
/** Called when the activity is first created. */
ListView myListView = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
myListView = (ListView)findViewById(R.id.listView);
final ArrayList<String> items = new ArrayList<String>();
items.add("00408C944B9A");
final ArrayAdapter<String> aa;
aa = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1,
items);
myListView.setAdapter(aa);
myListView.setOnItemClickListener(listClicked);
}
private OnItemClickListener listClicked = new OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View arg1, int position, long id) {
// TODO Auto-generated method stub
Intent i …Run Code Online (Sandbox Code Playgroud) 我目前正在以3人为一组进行AndAR项目.我是负责Android手机视频流的人.我得到了一台D-Link DCS-920 IP摄像机,我发现它使用MJPEG编解码器作为直播视频流,网络服务器使用Jview来观看直播.据我所知,MJPG不是Android操作系统支持的文件类型所以我想出了一个想法,而不是使用ImageView,我使用WebView来传输视频.我实现了一个非常简单的概念,它的工作原理!但问题是,刷新率很糟糕.我得到视频图像(例如http://192.168.1.10/image.jpg:)在WebView上查看并实现一个Timer来控制刷新率(假设它设置为30fps,每33ms刷新一次)但是它只能达到500ms间隔,任何更低的间隔我注意到它不会更平滑,有时图像不会加载,连接不稳定(例如:掉线).这可能是我的速度比它能以更快的速度刷新吗?但是在网络服务器Jview上它没有问题!我试图找到jview的源代码,但我没有希望.无论如何这里是我写的代码
package org.example.test;
import java.util.Timer;
import java.util.TimerTask;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.webkit.WebView;
import android.widget.Button;
import android.widget.EditText;
public class Webview extends Activity {
public WebView webView;
public Timer autoUpdate;
public String url;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
webView = (WebView) findViewById(R.id.webview);
webView.getSettings();
final EditText urlText = (EditText) findViewById(R.id.urlText);
//Buttons//////////////////------------
final Button connectB = (Button)findViewById(R.id.connectButton);
connectB.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) { …Run Code Online (Sandbox Code Playgroud) 嗨,我希望连接USB相机到Android手机我可以访问Galaxy note 1和Sony Xperia L,我可以通过Note打开USB记忆棒,但不能用Sony,所以我想这个音符将是我的项目的最佳选择,我的手机没有扎根..没有root手机可能吗?任何指针从哪里开始,如果有人知道一些示例项目..谢谢