android接收mjpg-streamer软件视频流
[代码]主要实现代码
package cn.dong.mjpeg; import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL; import android.app.Activity;
import android.content.pm.ActivityInfo;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.RectF;
import android.os.Bundle;
import android.view.SurfaceHolder;
import android.view.Window;
import android.view.SurfaceHolder.Callback;
import android.view.SurfaceView; public class surface extends Activity implements Runnable{
private SurfaceHolder holder;
private Thread mythread;
private Canvas canvas;
URL videoUrl;
private String url;
private int w;
private int h;
HttpURLConnection conn;
Bitmap bmp;
@Override
protected void onCreate(Bundle savedInstanceState) {
requestWindowFeature(Window.FEATURE_NO_TITLE);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.surface); url = getIntent().getExtras().getString("CameraIp"); w = getWindowManager().getDefaultDisplay().getWidth();
h = getWindowManager().getDefaultDisplay().getHeight(); SurfaceView surface = (SurfaceView)findViewById(R.id.surface); surface.setKeepScreenOn(true);// 保持屏幕常亮
mythread = new Thread(this);
holder = surface.getHolder();
holder.addCallback(new Callback() { @Override
public void surfaceDestroyed(SurfaceHolder holder) {
// TODO Auto-generated method stub } @Override
public void surfaceCreated(SurfaceHolder holder) {
// TODO Auto-generated method stub
mythread.start();
} @Override
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
// TODO Auto-generated method stub }
}); }
private void draw() {
// TODO Auto-generated method stub
try {
InputStream inputstream = null;
//创建一个URL对象
// url = "http://192.168.8.1:8083/?action=snapshot";
videoUrl=new URL(url);
//利用HttpURLConnection对象从网络中获取网页数据
conn = (HttpURLConnection)videoUrl.openConnection();
//设置输入流
conn.setDoInput(true);
//连接
conn.connect();
//得到网络返回的输入流
inputstream = conn.getInputStream();
//创建出一个bitmap
bmp = BitmapFactory.decodeStream(inputstream);
canvas = holder.lockCanvas();
canvas.drawColor(Color.WHITE);
RectF rectf = new RectF(0, 0, w, h);
canvas.drawBitmap(bmp, null, rectf, null);
holder.unlockCanvasAndPost(canvas);
//关闭HttpURLConnection连接
conn.disconnect();
} catch (Exception ex) {
} finally {
}
} @Override
public void run() {
// TODO Auto-generated method stub
while(true){
draw();
}
} }
android接收mjpg-streamer软件视频流的更多相关文章
- 如何将Android Studio与华为软件开发云代码仓库无缝对接(二)
上篇文章:如何将Android Studio与华为软件开发云代码仓库无缝对接(一) 上一章讲了,如何用Android Studio以软件开发云代码仓库为基础,新建一个项目.接下来,这一章继续讲建好项目 ...
- 基于Android的闹钟的软件
一.本课题要求:设计一个基于Android的闹钟的软件. 实现的功能有:能通过界面设置闹钟的启动条件建立后台服务进程,当满足触发条件时,闹钟响应相应事件. 二.需求分析 该课题实现在手机操作系统And ...
- 项目:Android平台txt阅读软件
项目:Android平台txt阅读软件 项目组成员:20145107李长达.20145110屠轶成.20145120黄玄曦.20145122程智崟 Need: 从古至今,阅读都是人类生活中的一大部分, ...
- Android接收wifi路由器发送过来的一组字节数据
1.字节数组转换为字符串 byte[] byBuffer = new byte[20];... ...String strRead = new String(byBuffer);strRead = S ...
- android接收短信——framework处理流程(android 5.1)
modem层不懂,所以直接从RIL.java开始.以电信卡接收短信为例 modem通知RIL.java中的 RILReceiver处理接收信息 class RILReceiver implements ...
- Android接收短信
Android收到短信时会广播android.provider.Telephony.SMS_RECEIVED消息,因此只要定义一个Receiver,收听该消息,就能接收短信. <receiver ...
- Android接收系统广播
Android内置了很多系统级别的广播,我们可以在应用程序中通过监听这些广播来得到各种系统的状态信息.比如手机开机完成后会发出一条广播,电池的电量发生变化会发出一条广播,时间或时区发生改变也会发出一条 ...
- android: 接收和发送短信
8.2 接收和发送短信 收发短信应该是每个手机最基本的功能之一了,即使是许多年前的老手机也都会具备这 项功能,而 Android 作为出色的智能手机操作系统,自然也少不了在这方面的支持.每个 A ...
- Android 接收短信
启动程序时启动一个service,在service里注册接收短信的广播,当手机收到短信里,打印出短信内容跟电话号码. package com.lmy.SmsListener; import andro ...
随机推荐
- 互斥的数(codevs 1553)
题目描述 Description 有这样的一个集合,集合中的元素个数由给定的N决定,集合的元素为N个不同的正整数,一旦集合中的两个数x,y满足y = P*x,那么就认为x,y这两个数是互斥的,现在想知 ...
- [poj2368]Buttons_博弈论
Buttons poj-2368 题目大意:给定n个按钮,每次可以按动[1,t]个.求最小的t使得先手必败. 注释:$1\le n\le 10^8$. 想法:经典巴什博弈. 求n的最小非1约数-1即可 ...
- Lein: Exception in thread "Thread-3" java.net.ConnectException: Connection refused
leiningen Leiningen是你的主要工具, 它用于: 启动一个 REPL 下载+安装类库 运行你的程序 启动一个服务器, 运行你所写的webapps 安装 brew install lei ...
- OpenCV基础篇之像素操作对照度调节
程序及分析 /* * FileName : contrast.cpp * Author : xiahouzuoxin @163.com * Version : v1.0 * Date : Tue 29 ...
- HDU 1853 Cyclic Tour(最小费用最大流)
Cyclic Tour Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/65535 K (Java/Others) Tota ...
- C语言实现单链表节点的删除(带头结点)
我在之前一篇博客<C语言实现单链表节点的删除(不带头结点)>中具体实现了怎样在一个不带头结点的单链表的删除一个节点,在这一篇博客中我改成了带头结点的单链表.代码演示样例上传至 https: ...
- [学习笔记]JavaScript基础
JavaScript概述 1. JavaScript定义 JavaScript是Netscape公司开发的一种基于对象和事件驱动的脚本语言.它是弱类型语言.仅仅能由浏览器解释运行. 当中: 脚本语言: ...
- Cocos2d-x 3.x 图形学渲染系列十五
笔者介绍:姜雪伟,IT公司技术合伙人,IT高级讲师,CSDN社区专家.特邀编辑,畅销书作者,国家专利发明人;已出版书籍:<手把手教你架构3D游戏引擎>电子工业出版社和<Unity3D ...
- Bag of word based image retrieval
主要参考维基百科Bag of Word 在DLP领域里,bow(bag of word)是一个稀疏的向量,向量的每个元素记录词的出现次数,相当于对每篇文章都关于词典做词的直方图统计.同样的道理用在co ...
- Codeforces Round #272 (Div. 2) D.Dreamoon and Sets 找规律
D. Dreamoon and Sets Dreamoon likes to play with sets, integers and . is defined as the largest p ...