展开

关键词

Android OpenSL  PCM 数据(八)

前言 本章主要讲述如何通过Android OpenSL 实现 PCM 数据。开发流程回顾可以看下笔者前面发布过的文章。 SHARED native-lib.cpp ) OpenSL ES  PCM 数据流程主要有如下: 1、 新建native-lib.cpp文件, recordBuffer->getRecordBuffer(), recorderSize); } } 5、开始 /** * 开始 */ (*recorderRecord)->SetRecordState(recorderRecord, SL_RECORDSTATE_RECORDING ); 小结 通过上面五个步骤就完成了Android OpenGL ESpcm功能,文章最后会附送上demo链接,demo生成的pcm数据会保存在 /Android/data/com.pengjie0668

38060

Android 与播放

private MediaRecorder mMediaRecorder; private void startRecord(){ if (mMediaRecorder == null e.printStackTrace(); } mMediaRecorder.start(); } handler.postDelayed(runnable, 200); } 停止 ); mMediaRecorder.stop(); mMediaRecorder.release(); mMediaRecorder = null; } 每200毫秒反复调用 获取声大小 double ratio = (double) mMediaRecorder.getMaxAmplitude() / 100; double db = 0;// 分贝 //默认的最大量是 只要有一个线程,不断调用这个方法,就可以使波形变化 //主要,这个方法必须在ui线程中调用 handler.postDelayed(this, 200); } }; 播放

37120
  • 广告
    关闭

    腾讯云精选爆品盛惠抢购

    腾讯云精选爆款云服务器限时体验20元起,云数据库19.9元/年起,还有更多热门云产品满足您的上云需求

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    FFmpeg + Android AudioRecorder 编码

    本文将利用 Android AudioRecorder 采集 PCM ,然后利用 FFmpeg 对其编码生成 aac 文件。 提前预告下,在该系列的下一篇文章将介绍 FFmpeg 同时对 Android Camera 采集的预览帧和 AudioRecorder 采集的数据进行编码,生成一个 mp4 文件。 ? FFmpeg + Android AudioRecorder 编码 AudioRecorder 使用 这里利用 Android AudioRecorder API 采集 PCM 裸数据,然后通过 代码实现 FFmpeg 编码数据跟编码视数据实现一样,Android AudioRecorder 通过 jni 将 PCM 数据传递到 Native 层队列中,供 FFmpeg 编码使用。 int StartRecord(); //接收数据 int OnFrame2Encode(AudioFrame *inputFrame); //停止 int

    38510

    FFmpeg + Android AudioRecorder 编码

    [FFmpeg + Android AudioRecorder 编码] 前文利用 FFmpeg 对 Android Camera2 采集的预览帧先进行渲染,然后利用 OpenGL 添加滤镜,最后将渲染结果进行编码生成 本文将利用 Android AudioRecorder 采集 PCM ,然后利用 FFmpeg 对其编码生成 aac 文件。 [FFmpeg + Android AudioRecorder 编码] AudioRecorder 使用 这里利用 Android AudioRecorder API 采集 PCM 裸数据, 代码实现 FFmpeg 编码数据跟编码视数据实现一样,Android AudioRecorder 通过 jni 将 PCM 数据传递到 Native 层队列中,供 FFmpeg 编码使用。 int StartRecord(); //接收数据 int OnFrame2Encode(AudioFrame *inputFrame); //停止 int

    25730

    Electron

    stream; liveVideo.muted = true; liveVideo.play(); startRecord(); }, function () { }) } 带声 ") }; mediaRecorder.onstop = () => { console.log("停止") }; mediaRecorder.start(); } 停止 timer); if (mediaRecorder) { mediaRecorder.stop(); //停止视流 getUserAudioError = (err) => { console.log('audioError', err); }; /** *开始视 } }) }; reader.readAsArrayBuffer(blob); }; /** *停止

    97520

    H5(WebRTC)

    widl-NavigatorUserMedia-getUserMedia-void-MediaStreamConstraints-constraints-NavigatorUserMediaSuccessCallback-successCallback-NavigatorUserMediaErrorCallback-errorCallback 方法需要3个参数: constraints,指明需要获取什么类型的数据 successCallback, 数据获取成功后回调的方法(只会被调用一次,但是如果把回调时的视流放到 video标签中,视会实时更新) errorCallback,接口调用失败后回调的方法 我主要想知道第一个参数里的情况,因为很多国内的教程里都只是这样:{video : true},我还想知道如果要 这个问题在https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia#Parameters 能找到答案,我复一下 constraints 如果单纯指定需要什么类型的媒体,只要这样就行{ audio: true, video: true },这个表示需要视。 如果要指定视的宽高可以这样 { audio: true, video: { width: 1280, height: 720 } } 还可以用min,max,或者 ideal (即如果支持

    3.2K40

    Android使用MediaRecorder类实现视功能

    一、前期基础知识储备 Android提供了MediaRecorder这一个类来实现视。 ? 由官方配图可知,MediaRecorder用于时需要调用一系列的API来设置和相关的配置,而且调用方法的顺序是固定的,必须按照这个顺序进行API调用才能正确利用手机摄像头实现像功能。 二、上代码,具体实现和视播放功能 这里调用MediaRecorder的API实现视功能并借用MediaPlayer多媒体播放类实现好的视播放。 Toast.makeText(MainActivity.this, "You denyied the permission", Toast.LENGTH_SHORT).show(); } }; 及播放完整代码如下 = null){ mMediaPlayer.release(); mMediaPlayer = null; } } } 三、延伸知识,运行时权限申请工具类 调用手机系统内置的摄像头进行视时及后将视保存在本地都需要申请系统权限

    61420

    Android,语发送

    这是一个的例子,可用于IM的语发送,OA的语留言等。 : 方面是利用MediaRecoder实现。 /** * 开始 使用amr格式 * 文件 * * @return */ public void startRecord(String ARM编码)、MPEG-4、RAW_AMR(只支持编码要求为AMR_NB) */ mMediaRecorder.setAudioEncoder 时间用线程去跑。核心内容: <?xml version="1.0" encoding="utf-8"?

    1.4K20

    Android开发(17) 和播放

    需求 使用android手机 了解MediaRecorder mRecorder = new MediaRecorder(); mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC mRecorder.prepare(); } catch (IOException e) { Log.e(LOG_TAG, "prepare() failed"); } mRecorder.start(); 步骤 设定声来源 指定编码格式。 预备。 启动。 代码 配合启动的过程,就会有终止的过程,代码: mRecorder.stop(); mRecorder.release(); mRecorder = null; 结束,并释放资源。 播放 完成后,总得要听听吧。

    72500

    缺失分析

    ,导致RTMP Reader无法正确初始化的AVCodecContext,进而影响MuxingAVCodecContext初始化,最终导致文件出现静等问题。 时,ffmpeg会报错: image.png 此时若忽略的AVCodecContext,可以正常文件,这样做存在的问题是若后续推送了正常的数据,也会被端忽略。 AVCodecContext指针则为0,忽略则静。 该场景实际是会影响AVCodecContext的extradata的初始化,该场景中,代码对hls和非hls有不同的做法,hls时,放弃,其他格式则依旧使用无extradata的 ,最终还不成功则忽略AVCodecContext,直接

    47530

    Android多媒体--MediaRecorder视

    Android使用MediaRecorder类进行视。 需要注意,使用MediaRecorder 像 的设置代码步骤一定要按照API指定的顺序来设置,否则报错 步骤为: 1、设置视源,源,即输入源 2、设置输出格式 3、设置的编码格式 一、 的输出格式 recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); //3.设置的编码格式 recorder.setAudioEncoder 单位:毫秒 recorder.setMaxDuration(600000); //设置最大的大小 单位,字节 recorder.setMaxFileSize(1024*1024); //一秒钟包含多少数据位 onPreviewFrame(byte[] data, Camera camera) { 128 129 } 130 } 本例子只是一个简单的Demo,用于给刚接触MediaRecorder

    91470

    Android中通过Intent 调用图片、视、拍照

    Intent.createChooser(intent, null); ((Activity) context).startActivityForResult(wrapperIntent, requestCode); //添加 Intent.createChooser(intent, null); ((Activity) context).startActivityForResult(wrapperIntent, requestCode); //拍摄视 MediaStore.EXTRA_DURATION_LIMIT, durationLimit); startActivityForResult(intent, REQUEST_CODE_TAKE_VIDEO); //视 Intent.createChooser(intent, null); ((Activity) context).startActivityForResult(wrapperIntent, requestCode); //

    8120

    AVFoundation 文本转语 播放

    接下来介绍下常用的和播放功能 所有iOS应用程序都具有会话,无论其是否使用。 我们可以在Mac机器和iOS设备上使用这个类来从内置的麦克风,也可从外部设备进行,比如数字接口或USB麦克风 创建 AVAudionRecorder let tmpDir 在的质量及最终文件大小方面,采样率扮演着至关重要的角色。 3.通道数 AVNumberOfChannelsKey用于定义记内容的通道数。指定默认值1意味着使用单声道,设置为2意味着使用立体声。 除非使用外部硬件进行,否则通常应该创建单声道。 4.指定格式的键 处理Linear PCM或压缩格式时,可以定义一些其他指定格式的键。

    63040

    iOS ARKit(AVAssetWriter & 有声

    ####思路 1.开启CADisplayLink 定时器来 CADisplayLink 刷新率比- (void)session:(ARSession \*)session didUpdateFrame :(ARFrame \*)frame方法要快 而且更加符合需求 2.在的第一帧的时候开始 ####注意 在Info.plist文件里加入下面2个key NSMicrophoneUsageDescription

    760190

    Android MP3,波形显示,权限兼容与播放

    我又来掀桌子了(ノಠ益ಠ)ノ彡┻━┻,这次是MP3和显示声波形的一个故事。 ,站在巨人的肩膀上(cao xi),增加了的权限判断和数据提取的逻辑。 ,因为手机每次读上来的数据是比较大的,这和我们配置的参数也有关系,这里使用的是44100HZ的参数,那么我们直接降就好了。 );,然后绘基线,接着就是for循环绘线了。 绘以基线为轴,每个数据除以缩放系数(需要考虑乘的情况?

    89820

    视沃科技-大牛直播SDK

    本地屏幕/摄像头/数据;3.本地flv文件;多路流合成一路实时导播推送; 像SDK 支持拉取rtmp/rtsp流实时像模块/实时快照功能,支持纯、纯视模式,支持(PCMU 、像、实时静、view旋转、快速切换URL等特性; 像SDK 支持拉取rtmp/rtsp流实时像模块/实时快照功能,支持纯、纯视模式,支持(PCMU/PCMA,Speex 实时静、view旋转、快速切换URL等特性; 像SDK 支持拉取rtmp/rtsp流实时像模块/实时快照功能,支持纯、纯视模式,支持(PCMU/PCMA,Speex等 AAC后,支持设置只或视),可参见"8. 、像路径等,并支持纯、纯视模式; [转码]支持(PCMU/PCMA,Speex等)转AAC后再像; [265支持]支持RTSP/RTMP H.265到MP4文件;

    89030

    Android仿微信功能

    本文实例为大家分享了Android仿微信的具体代码,供大家参考,具体内容如下 前言 我把分成了两部分 1.UI界面,弹窗读秒 2.一个类(包含开始、停止、创建文件名功能) 第一部分 由于 padding="10dp" / </LinearLayout </RelativeLayout </LinearLayout 弹弹弹 /** * 开始 R.id.timer); timer.setBase(SystemClock.elapsedRealtime());//计时器清零 timer.start();//开始的提示 = null) { mPopWindow.dismiss(); sr.stopRecording();//停止 } MediaRecorder.AudioEncoder.DEFAULT); mRecorder.setOutputFile(newFileName()); try { // 准备好开始

    31942

    Android仿微信小视

    本文实例为大家分享了Android仿微信小视的具体代码,供大家参考,具体内容如下 先上张图片看看效果 ? 简单叙述下 首先通过Camera类调用系统相机 通过surfaceview绘出来 通过MediaRecorder来 闪光灯 和 切换摄像头 需要重新配置Camera的参数 Camera预览界面画面拉升的原因是因为 Surfaceview的大小与设定的比例不一致的 **本次版本更新了 切换前置摄像头问题 Android部分手机适配IOS手机问题 (OPPO手机部分不适配 目前启用的H264格式 _4);// 视输出格式 mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);// 格式 mMediaRecorder.setVideoSize 因为我们需要适配IOS开发和Android不同版本的手机 而IOS和Android通配的视格式不多 我们这里采用H264格式 它的兼容范围更广阔 主要解决的就是部分OPPO手机不适配问题 *

    28520

    利用WebRTC采样的

    WebRTC流之后,最终是通过Blob对象将数据保存成多媒体文件的,而Blob与ArrayBuffer和ArrayBufferView有着密切的关系。 1. Blob Blob是Javascript的大型二进对象类型,WebRTC最终是使用Blob将好的的流保存成多媒体文件的,而Blob的底层是由ArrayBuffer对象的封装类实现的,即Int8Array 如何并保存文件到本地 如何并保存文件到本地 <template>

    扫码关注云+社区

    领取腾讯云代金券