精华内容
下载资源
问答
  • 写了一个android手机录像应用。。但是一模拟就说无法打开。。手机运行也是 下面是logcat里面的报错(前半部分,后半部分在二楼) 05-08 17:16:56.863: E/Zygote(33): setreuid() failed. errno: 2 05-08 17:17:...
  • 介绍 客户端应用主要是基于Android平台的,把手机录像的视频数据打包成flv(h264+aac)格式上传到feng流媒体服务器上,用户就可以通过web浏览器或者其它播放器实时的观看手机录像画面,下一个版本将会增加监控...

    一、服务器端

           基于Feng开源的流媒体服务器增加一个Web server,用来接收客户端上传的视频数据,然后通过RTSP/RTP直播到手机终端上去

    二、客户端应用

     

    1. 介绍
    客户端应用主要是基于Android平台的,把手机录像的视频数据打包成flv(h264+aac)格式上传到feng流媒体服务器上,用户就可以通过web浏览器或者其它播放器实时的观看手机录像画面,下一个版本将会增加监控画面分辨率设置功能。

    2. 操作说明

    第一步:选择品牌录像机,不同品牌会产生不同快门按钮声音

     

    第二步:如果第一次使用时点击检测摄像头按钮,然后点击开始按钮,在出现的监控画面上会有访问改录像的IP地址

     

    第三步:打开浏览器输入手机监控画面上的服务器地址

     

    展开全文
  • 帮助别人搞点视频,最近他提出一个问题:为... 可能有办法解决,吾拒绝:应用到了后台还要录像,你想干什么?录音都应该停止。你是做项目的,又不是搞阴谋的,老老实实的做事情,不要想这些没有任何意义的鬼主意。 ...

      帮助别人搞点视频,最近他提出一个问题:为什么视频通话时,应用到了后台就停止视频了?这个吾是有印象的:录音可以继续,录像是不行的。于是专门确认了一下,确实如此。

      原因是什么?就是到了后台,预览画面消失,Surface破坏,于是停止预览,自然就没有数据上传。如果想继续,想办法保留预览画面即可。

      可能有办法解决,吾拒绝:应用到了后台还要录像,你想干什么?录音都应该停止。你是做项目的,又不是搞阴谋的,老老实实的做事情,不要想这些没有任何意义的鬼主意。

    展开全文
  • Android简单照相机 涉及知识点 隐式跳转 ...隐式意图一般情况下用于,两个应用程序的:组件(Activity,Service,…) 与 组件(Activity,Service,…) 的激活调用: <?xml version="1.0" encoding=...

    Android简单照相机

    涉及知识点
    隐式跳转
    动态申请权限
    SurfaceView+MediaPlayer

    动态申请权限打开摄像头打开图库在Android6.0以后需要动态申请权限
    隐式意图一般情况下用于,两个应用程序的:组件(Activity,Service,…) 与 组件(Activity,Service,…) 的激活调用:
    
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity"
        android:orientation="vertical">
    
    
         <Button
             android:text="拍照"
             android:id="@+id/btnCamera"
             android:layout_width="match_parent"
             android:layout_height="wrap_content" />
        <Button
            android:text="摄像"
            android:id="@+id/btnVideo"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
        <Button
            android:text="图库"
            android:id="@+id/btnimage"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
    
        <ImageView
            android:id="@+id/img"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
    </LinearLayout>
    
    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".VideoActivity">
    
        <SurfaceView
            android:id="@+id/sfv"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
    
    </RelativeLayout>
    
    package com.example.day05;
    
    import android.Manifest;
    import android.app.Notification;
    import android.content.ContentValues;
    import android.content.Intent;
    import android.content.pm.PackageManager;
    import android.database.Cursor;
    import android.graphics.Bitmap;
    import android.graphics.BitmapFactory;
    import android.net.Uri;
    import android.os.Build;
    import android.os.Environment;
    import android.provider.MediaStore;
    import android.support.annotation.NonNull;
    import android.support.annotation.Nullable;
    import android.support.annotation.RequiresApi;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.View;
    import android.widget.ImageView;
    import android.widget.Magnifier;
    import android.widget.Toast;
    
    import java.io.File;
    
    public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    
        private ImageView imageView;
        private int REQUEST_PERMISSION_CODE = 100;
        final private int REQUEST_VIDEO_CODE = 300;//调用系统相机录像的request code 码
        final private int REQUEST_CAMERA_CODE = 200;//调用系统相机的request code 码
        final private int REQUEST_PHOTO_CODE = 400;//调用系统图库的request code 码
        private boolean grantResult = true;
        private String savewCanerapath;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            imageView = findViewById(R.id.img);
            findViewById(R.id.btnCamera).setOnClickListener(this);
            findViewById(R.id.btnVideo).setOnClickListener(this);
            findViewById(R.id.btnimage).setOnClickListener(this);
    
            initPermission();
    
        }
    
        private void initPermission() {
            //判断当前安卓系统的版本是否大于或者等于6.0?需要动态申请相机和存储权限:清单文件申请权限
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                //判断当前应用是否已经有了相机权限。
                int hasCameraPermisson = checkSelfPermission(Manifest.permission.CAMERA);
                int hasWiteStoragePemisson = checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE);
                int hasReadStoragePemisson = checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE);
    
                //如果不等于改值,表示当前应用不具备相机权限||不具备存储Sd卡权限||不具备读取Sd卡权限
                if (hasCameraPermisson != PackageManager.PERMISSION_GRANTED
                        || hasWiteStoragePemisson != PackageManager.PERMISSION_GRANTED
                        || hasReadStoragePemisson != PackageManager.PERMISSION_GRANTED) {
    
                    requestMyPermission();
                }
            }
        }
    
        //开始申请权限
        @RequiresApi(api = Build.VERSION_CODES.M)
        private void requestMyPermission() {
            //可以一次性申请多个权限.
            String permissions[] = new String[]{Manifest.permission.CAMERA, Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE};
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                requestPermissions(permissions, REQUEST_PERMISSION_CODE);
            }
    
        }
    
        @Override
        public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
            super.onRequestPermissionsResult(requestCode, permissions, grantResults);
    
            //用来判断,这次回调,是否是我们申请权限的回调
            if (requestCode == REQUEST_PERMISSION_CODE) {
    
                for (int i = 0; i < grantResults.length; i++) {
                    //代表有权限永不并没有同一同意
                    if (grantResults[i] != PackageManager.PERMISSION_GRANTED) {
                        grantResult = false;
                        Toast.makeText(this, "用户并没有授权给应用设置头像", Toast.LENGTH_SHORT).show();
                    }
                }
            }
    
        }
    
        @Override
        public void onClick(View v) {
            switch (v.getId()) {
                case R.id.btnCamera:
                    if (!grantResult)
                        Toast.makeText(this, "用户并没有授权给应用设置头像,请手动到设置菜单给应用设置权限", Toast.LENGTH_SHORT).show();
                    else
                        takeCapture();
                    break;
                case R.id.btnVideo:
                    if (!grantResult)
                        Toast.makeText(this, "用户并没有授权给应用设置录像", Toast.LENGTH_SHORT).show();
                    else
                        takeVideo();
                    break;
    
                case R.id.btnimage:
                    if (!grantResult)
                        Toast.makeText(this, "用户并没有授权给应用图库", Toast.LENGTH_SHORT).show();
                    else
                        takePhtoto();
                    break;
                default:
                    break;
            }
        }
    
        //从系统图库中,读取一张图片
        private void takePhtoto() {
            Intent intent = new Intent();
            intent.setAction(Intent.ACTION_PICK);//隐式打开系统图库的UI.
            intent.setType("image/*");
            startActivityForResult(intent, REQUEST_PHOTO_CODE);
        }
    
        private void takeVideo() {
            Intent intent = new Intent();
            intent.setAction(MediaStore.ACTION_VIDEO_CAPTURE);
            startActivityForResult(intent, REQUEST_VIDEO_CODE);
        }
    
        private void takeCapture() {
            savewCanerapath = getSaveCamerapath();
            File file = new File(savewCanerapath);
            if (!file.getParentFile().exists()) {
                file.getParentFile().mkdir();//如果存储照片的目录不存在,我们需要创建目录.
            }
            Intent intent = new Intent();
            intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);//启动系统相机的Activity(隐式启动)
    
            //如果大哥前系统小于6.0,一种处理方式,大于或者等于是另一种处理方式
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                Uri uri = Uri.fromFile(file);
                intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
            } else {//大于或者等于6.0版本的处理方式
                ContentValues values = new ContentValues();
                values.put(MediaStore.Images.Media.DATA, savewCanerapath);
                Uri mediaduri = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
                intent.putExtra(MediaStore.EXTRA_OUTPUT, mediaduri);
    
            }
            //调用系统相机经行拍照
            startActivityForResult(intent, REQUEST_CAMERA_CODE);
        }
    
        //产生存储相机图片的路径,利用时间戳,可以确保文件名唯一
        private String getSaveCamerapath() {
    
            return Environment.getExternalStorageDirectory().getAbsolutePath() + "/demcaera/" + System.currentTimeMillis() + ".jpg";
        }
    
        @Override
        protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
            super.onActivityResult(requestCode, resultCode, data);
            if (resultCode != RESULT_OK) {
                Toast.makeText(this, "拍照失败", Toast.LENGTH_SHORT).show();
                return;
            } else {
                switch (requestCode) {
    
                    case REQUEST_CAMERA_CODE:
    
                        Log.d("LQS", "拍照成功");
                        Bitmap bitmap = BitmapFactory.decodeFile(savewCanerapath);
    
                        imageView.setImageBitmap(bitmap);
                        break;
                    case REQUEST_VIDEO_CODE:
                        Uri videoUri = data.getData();
                        String videoPath = null;
                        Cursor cursor = getContentResolver().query(videoUri, null, null, null, null, null);
                        while (cursor.moveToNext()) {
                            //循环找到最后一个路径是我们新录制的视频.
                            videoPath = cursor.getString(cursor.getColumnIndex(MediaStore.Video.Media.DATA));
    
                        }
                        cursor.close();
                        Intent intent = new Intent(MainActivity.this, VideoActivity.class);
                        intent.putExtra("video", videoPath);
                        startActivity(intent);
    
                        break;
    
                    case REQUEST_PHOTO_CODE:
                        Uri uri = data.getData() ;//获取选择到的图片的Uri
                        imageView.setImageURI(uri);
                        break;
    
                    default:
                        break;
                }
            }
        }
    }
    
    
    package com.example.day05;
    
    import android.media.MediaPlayer;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.SurfaceHolder;
    import android.view.SurfaceView;
    
    import java.io.IOException;
    
    public class VideoActivity extends AppCompatActivity implements SurfaceHolder.Callback {
    
        private SurfaceView surfaceView;
        private SurfaceHolder surfaceHolder;
        private MediaPlayer mediaPlayer;
        private String videoPath;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main2);
            videoPath = getIntent().getStringExtra("video");
    
            surfaceView = findViewById(R.id.sfv);
            surfaceHolder = surfaceView.getHolder();
            surfaceHolder.addCallback(this);
    
    
        }
    
        private void initMediaPlayer() {
    
            mediaPlayer = new MediaPlayer();
            mediaPlayer.setDisplay(surfaceHolder);
            try {
                mediaPlayer.setDataSource(videoPath);
    
            } catch (IOException e) {
                e.printStackTrace();
            }
            mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
                @Override
                public void onPrepared(MediaPlayer mp) {
                    mediaPlayer.start();
                }
            });
            mediaPlayer.prepareAsync();
        }
    
        @Override
        public void surfaceCreated(SurfaceHolder holder) {
            initMediaPlayer();
        }
    
        @Override
        public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
    
        }
    
        @Override
        public void surfaceDestroyed(SurfaceHolder holder) {
            mediaPlayer.stop();
            mediaPlayer.release();
        }
    }
    
    

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    拍照和录像点击按钮就可以实现应该需要连接手机所以就没有演示效果啦

    展开全文
  • 支持windows mobile5.0以上手机手机拍照自动识别解码,超高速解码,拍照解码时间0.12秒-1.2秒
  • 解决手机7.0系统上面导致启动拍照应用闪退问题.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
  • 现在的安卓手机屏幕录像软件有很多,今天大眼仔给大家带来一款...Screen Recorder 5+ 作为一款轻量级的安卓手机屏幕录像软件,对于应用程序白热化的今天,或许 Screen Recorder 5+ 可以在你的手机 APP 中留有一席空间。
  • 视频:基于HOG和SVM的复杂背景下的手势识别应用于Android手机相册管理 HOG讲解:http://blog.sina.com.cn/s/blog_60e6e3d50101bkpn.html SVM讲解:http://blog.csdn.net/v_july_v/article/details/7624837...
    展开全文
  • 浙江大学-智能手机软件开发本科课程-2010年夏课件与录像
  • 浙江大学-智能手机软件开发本科课程-2010年夏课件与录像
  • 该产品将应用于带有视频录像功能手机中,支持更新一代的大电流/高亮度闪光LED。AAT1270升压型电流调节器在3×3mm STDFN封装内可提供所需的大电流值,以支持更高分辨率电荷耦合器件(CCD)图像传感器的闪光照明。  ...
  • 本站之前分享过一个PC端动态演示手机屏幕的源码,点击PC项目分类目录就可以找到,本项目是一套PC端动态演示手机摄像头图像的...我用模拟器测试的,模拟器录像有点问题,需要的朋友可以用真机测试一下。应该没有问题。
  • 视频的拍摄、观看及应用在我们生活中已经非常广泛了,而分辨率决定了视频的清晰程度。分辨率与视频密切相关,可您对它了解又有多少呢?本文将全面讲解视频分辨率,带大家一起了解各种常见的分辨率以及各种设备、文件...
  • 边玩手游边录像

    2016-08-18 16:25:51
    最近在网上找到了一个可以给手机游戏录像的免费软件...整个安装包才5M,不仅可以给手机录像还支持同时连接多个手机并且可以用电脑去操作手机,还有全屏、截屏、录制脚本等功能,下面我就简单介绍下小萝贝的使用方法  
  • 目前市面上比较通用的RTMP推流组件EasyRTM就是一套调用简单、功能完善、运行高效稳定...支持市面上绝大部分的RTMP流媒体服务器,能够完美应用于各种行业的直播需求,手机直播、桌面直播、摄像机直播、课堂直播等方面。
  • 录像过程中系统时间改变了,怎么避免带来的悲剧 在android系统上,我们知道改变系统时间的方法有两种,一种就是通过再设置应用里面设置日期时间,另外一种就是通过网络后台同步时间,在手机平板上这两种是比较多的...
  • 《Android 4.X手机/平板电脑程序设计入门、应用到精通(第2版)》9大特色: 丰富的Eclipse开发环境操作技巧,帮助初学者快速学会Eclipse的强大功能以及程序调试技术,同时讲解了很多程序编辑辅助功能,可大大提升...
  • KKCapture视频录像软件下载 2011年03月27日  KKCapture视频录像软件 ... [b]装机常用软件[/b] 文章中心 编程开发 手机软件 苹果(Mac)软件 软件使用教程 常用dll下载 软件分类 最近更新 ...
  • 既然现在的笔记本电脑,平板,手机都有摄像头和麦克风,那么录音和录像就是一件非常容易的事情了,但是如果不用别人写好的录音录像程序,让你自己来实现一个录音和录像应用,其实也没那么简单。 但是有了 WebRTC 和...
  • 一、背景 1.1 方案背景 随着互联网基础设施...都是移动互联网推进发展的产物,而在传统监控行业里面,互联网思维和技术完全可以引入其中,尤其是在移动互联网、物联网方面的技术,手机视频直播应用在无人巡检...
  • 我公司新一代产品网络摄像机适用于仓库门的录像遥控! 实现手机APP观看仓库,手机APP一键打开关闭仓库门!
  • 特点:允许用户录制Android手机的视频。 无需植根设备即可使用此功能。 可以轻松分享视频。 技术细节:普通的 Android 应用程序缺乏捕获帧缓冲区 (/dev/graphics/fb0) 的权限。这是出于安全原因 - 否则他们可以从软...
  • 屏幕录像机是一款应用程序,可帮助您轻松在任何地方记录屏幕并拍摄屏幕截图。想要录下 Android 手机上游戏甚至是任何程序的过程吗?如果手机没有内建的话现在可以推荐你安装这款 Screen Recorder – No Ads 软件,...
  • 应用程序很适合MP4的转换 – 例如将老旧的视频转换成现代格式,以便在你的设备中,如智慧手机、平板电脑、膝上电脑、Mac、电脑、Chromebooks或Apple电视上播放视频 Clipchamp也提供为Microsoft办公室软件预设的...
  • 玩家通关后可以使用“录像”功能保存通关步骤,以便将来“回放”。 4. 可以自由设计关卡,批量进行数据导出和导入。 如下图的“解决方案资源管理器”所示,该程序的源程序主要分布在“Window
  • 自从从手机应用转到RK安卓主板开发以后,发现有些手机上通用的东西在定制的主板上无法使用,比如:自定义相机录像功能 权限: <!-- 增加文件存储和访问摄像头的权限 --> <uses-permission android:name=...
  • 因为要录像又要录屏,所以不可能直接用手机屏幕的实际分辨率。所以从camera.getParameters()获取宽高并设置为输出的视频的分辨率。现象是很多手机上看录制好的视频录屏那块被缩小了,其实是因为有黑边造成的。因此...
  • 在近日举行的2014移动互联发展大会暨第五届手机应用开发者大会上,APP社交分享服务提供商ShareSDK公布了产品的下一个方向是手游录像分享。 这与另一家原创游戏视频公司爱拍推出的“爱拍SDK”产品有相似之处,在...

空空如也

空空如也

1 2 3 4 5 ... 13
收藏数 254
精华内容 101
关键字:

手机录像应用