当前位置: 首页 > news >正文

打名字就说你是什么做的网站/制作企业网站的公司

打名字就说你是什么做的网站,制作企业网站的公司,微信公众管理平台,中国纪检监察报app下载【实例简介】拍照、录制视频、上传、服务器配置、预览视频等功能都实现了 文件:590m.com/f/25127180-487961102-db07dd(访问密码:551685) 【实例截图】 【核心代码】 package cn.itcast.videorecord; import java.io.File; i…

【实例简介】拍照、录制视频、上传、服务器配置、预览视频等功能都实现了

文件:590m.com/f/25127180-487961102-db07dd(访问密码:551685)

【实例截图】
在这里插入图片描述
【核心代码】

package cn.itcast.videorecord;

import java.io.File;
import java.io.OutputStream;
import java.io.PushbackInputStream;
import java.io.RandomAccessFile;
import java.net.Socket;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.hardware.Camera;
import android.media.MediaRecorder;
import android.os.Bundle;
import android.os.Environment;
import android.os.ParcelFileDescriptor;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity implements
DialogInterface.OnClickListener
{
private static final String TAG = “MainActivity”;
private SurfaceView surfaceView;
private MediaRecorder mediaRecorder;
private boolean record;
private File videoFile;
private ProgressDialog progressDialog = null;// 上传进度条
private long videoLenth = 0;
Thread thread;
private Camera camera = null;
private Socket receiver;

@Override
public void onCreate(Bundle savedInstanceState)
{super.onCreate(savedInstanceState);Window window = getWindow();// 得到窗口requestWindowFeature(Window.FEATURE_NO_TITLE);// 没有标题window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);// 设置全屏window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);// 屏幕高亮setContentView(R.layout.main);mediaRecorder = new MediaRecorder();surfaceView = (SurfaceView) this.findViewById(R.id.surfaceView);/* 下面设置Surface不维护自己的缓冲区,而是等待屏幕的渲染引擎将内容推送到用户面前 */this.surfaceView.getHolder().setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);this.surfaceView.getHolder().setFixedSize(800, 600);// 设置分辨率ButtonClickListener listener = new ButtonClickListener();//修改这里切换传输Button stopButton = (Button) this.findViewById(R.id.stop);Button recordButton = (Button) this.findViewById(R.id.record);stopButton.setOnClickListener(listener);recordButton.setOnClickListener(listener);/** // IP按钮 Button IPButton = (Button) findViewById(R.id.IPbutton);* IPButton.setOnClickListener(new Button.OnClickListener() {* * @Override public void onClick(View v) { // TODO Auto-generated method* stub onShowPromptDialog(v); } });*/}/*** 显示对话框的IP*/
public void onShowPromptDialog(View v)
{// inflate需要显示到Dialog里的View对象LayoutInflater li = LayoutInflater.from(this);View view = li.inflate(R.layout.log, null);EditText td = (EditText) view.findViewById(R.id.editText_prompt);td.setText("lvjun5555555555");AlertDialog.Builder builder = new AlertDialog.Builder(this);builder.setTitle("请输入上传主机的IP地址");builder.setIcon(R.drawable.ic_launcher);// 之前inflate的View 放到dialog中builder.setView(view);builder.setPositiveButton("确定", this);builder.setNegativeButton("取消", this);builder.create().show();}/*** 实现Dialog的回调方法*/
@Override
public void onClick(DialogInterface dialog, int which)
{// TODO Auto-generated method stubif (which == Dialog.BUTTON_POSITIVE){AlertDialog ad = (AlertDialog) dialog;EditText t = (EditText) ad.findViewById(R.id.editText_prompt);String ip = t.getText().toString();StreamTool.createFile(ip);System.out.println("修改成功");Toast.makeText(this, t.getText().toString(), Toast.LENGTH_LONG).show();}
}/*** 当activity摧毁时调用*/
@Override
protected void onDestroy()
{mediaRecorder.release();super.onDestroy();
}/*** 保存到本地在上传* * @author Administrator 吕俊*/
private final class ButtonClickListener implements View.OnClickListener
{@Overridepublic void onClick(View v){if (!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){Toast.makeText(MainActivity.this, R.string.sdcarderror, 1).show();return;}try{switch (v.getId()){case R.id.record:mediaRecorder.reset();mediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA); // 从照相机采集视频mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);mediaRecorder.setVideoSize(480, 320);mediaRecorder.setVideoFrameRate(3); // 每秒3帧mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H263); // 设置视频编码方式mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);videoFile = new File(Environment.getExternalStorageDirectory(),System.currentTimeMillis()   ".MP4");mediaRecorder.setPreviewDisplay(surfaceView.getHolder().getSurface());mediaRecorder.setOutputFile(videoFile.getAbsolutePath());mediaRecorder.prepare();// 预期准备mediaRecorder.start();// 开始刻录record = true;break;case R.id.stop:if (record){System.out.println(videoFile);mediaRecorder.stop();record = false;progressDialog = new ProgressDialog(MainActivity.this);progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);progressDialog.setIcon(R.drawable.camera);progressDialog.setTitle(R.string.upload);progressDialog.setButton("取消上传",new DialogInterface.OnClickListener(){@Overridepublic void onClick(DialogInterface dialog,int which){// TODO Auto-generated method stubthread.interrupt();}});progressDialog.show();thread = new Thread(new UploadTask());thread.start();}break;}} catch (Exception e){Toast.makeText(MainActivity.this, R.string.error, 1).show();Log.e(TAG, e.toString());}}}/*** 实时上传到PC端(边录边传)* * @author Administrator 吕俊*/
private final class ButtonClickListener1 implements View.OnClickListener
{@Overridepublic void onClick(View v){if (!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){Toast.makeText(MainActivity.this, R.string.sdcarderror, 1).show();return;}try{switch (v.getId()){case R.id.record:mediaRecorder.reset();mediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA); // 从照相机采集视频//mediaRecorder//.setAudioSource(MediaRecorder.AudioSource.MIC);mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);mediaRecorder.setVideoSize(480, 320);mediaRecorder.setVideoFrameRate(3); // 每秒3帧mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.DEFAULT); // 设置视频编码方式//mediaRecorder//      .setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);mediaRecorder.setPreviewDisplay(surfaceView.getHolder().getSurface());// 实时上传的代码receiver = new Socket("192.168.1.149", 9999);ParcelFileDescriptor pfd = ParcelFileDescriptor.fromSocket(receiver);mediaRecorder.setOutputFile(pfd.getFileDescriptor());mediaRecorder.prepare();// 预期准备mediaRecorder.start();// 开始刻录record = true;break;case R.id.stop:if (record){System.out.println(videoFile);mediaRecorder.stop();mediaRecorder.release();receiver.close();record = false;}break;}} catch (Exception e){Toast.makeText(MainActivity.this, R.string.error, 1).show();Log.e(TAG, e.toString());}}}/*** 文件上传连接服务器的* * * **/
class UploadTask implements Runnable
{@Overridepublic void run(){try{videoLenth = videoFile.length();// 得到文件的大小progressDialog.setMax((int) videoLenth);// 设置精度条的最大值System.out.println("连接之前");String ip = StreamTool.readIP();// 从配置文件里读取IpSocket socket = new Socket(ip, 6789);OutputStream outStream = socket.getOutputStream();System.out.println("连接之后");System.out.println(videoFile);String head = "Content-Length="   videoFile.length()";filename="   videoFile.getName()   ";sourceid=\r\n";System.out.println(videoFile.getName());outStream.write(head.getBytes());PushbackInputStream inStream = new PushbackInputStream(socket.getInputStream());String response = StreamTool.readLine(inStream);System.out.println(response);String[] items = response.split(";");String position = items[1].substring(items[1].indexOf("=")   1);RandomAccessFile fileOutStream = new RandomAccessFile(videoFile, "r");fileOutStream.seek(Integer.valueOf(position));byte[] buffer = new byte[1024];int len = -1;int i = 1;while ((len = fileOutStream.read(buffer)) != -1){outStream.write(buffer, 0, len);// if(i==10) break;Log.i("haha", len   "");i = i   len;progressDialog.setProgress(i);}fileOutStream.close();outStream.close();inStream.close();socket.close();} catch (Exception e){System.out.println("报错"   e.getMessage());e.printStackTrace();} finally{progressDialog.dismiss();}}
}

}

http://www.lbrq.cn/news/760843.html

相关文章:

  • 武汉网站建设询搜点网络/网页设计一般用什么软件
  • 合规部对于网站建设的意见/中国大数据平台官网
  • 昆山做网站费用/icp备案查询
  • mac系统可以做数据库网站开发/网页推广链接怎么做
  • 游戏网站做的思想步骤/app搜索优化
  • 关于做网站的笑话/精准的搜索引擎优化
  • 温州市建设工程质监站网站/网络营销以什么为中心
  • 网站电子商务类型/杭州seo顾问
  • 课程网站建设的步骤/seo的研究对象
  • 会计信息系统网站建设流程图/谷歌广告代理商
  • 高端网站建设方案模板范文/线上营销策略
  • 花生壳 wordpress/百度快速排名优化服务
  • 暖色网站/怎么开设自己的网站
  • wordpress文章名/游戏优化
  • 织梦网站移动化/重庆seo网络推广平台
  • 网站公安备案要多久/怎么自己刷推广链接
  • 深圳市seo推广联系方式/江苏seo团队
  • 怎么做幼儿园的网站/黑帽seo排名技术
  • 应聘网站运营建设面试/淘宝自动推广软件
  • 国内访问wordpress/常州seo收费
  • 外贸网站都有哪些/网络推广公司收费标准
  • 一个专门做标题的网站/百度竞价推广的技巧
  • 深圳做微信商城网站建设/企业网站推广方法实验报告
  • 眉山政府网站建设/什么是百度搜索推广
  • 网站建设中模板/厦门seo推广公司
  • 男女性直接做的视频网站/杭州seo培训
  • 网站的图形拖拽验证码怎么做的/郑州关键词seo
  • 怎么用网页制作一个网站/成都网站建设公司
  • 中国纪检监察网站首页/360推广和百度推广哪个好
  • wordpress手机端网站模板下载失败/免费b站推广网站不
  • 无人机智能跟踪模块设计与运行分析
  • OpenCV ------图像基础处理(一)
  • 智慧工地从工具叠加到全要素重构的核心引擎
  • 在mysql> 下怎么运行 .sql脚本
  • 完整源码+技术文档!基于Hadoop+Spark的鲍鱼生理特征大数据分析系统免费分享
  • Java毕业设计选题推荐 |基于SpringBoot的水产养殖管理系统 智能水产养殖监测系统 水产养殖小程序