技术背景我们在做Android端同屏的时候,开发者希望可以高版本的Android系统上,在设备支持的前提下,可以采集到扬声器输出的audio,并支持和麦克风采集的audio相互切换,实现无纸化|智慧教室同屏不同 从Android 10(API级别29)开始,Android引入了媒体投影API(MediaProjection),允许应用捕获屏幕内容以及音频。 null) {old.close();Log.i(TAG, "stop_audio_playback_capture capture.close.");}}启动RTMP推送或轻量级RTSP服务过程中,切换采集扬声器或者麦克风 采集屏幕和麦克风|扬声器audio,然后推送到RTMP服务和轻量级RTSP服务),扬声器audio采集,特别是视频播放模式下,比如无纸化同屏过程中,需要放个宣传片,或者一些视频材料,非常方便:总结Android 平台扬声器播放声音的采集,在无纸化同屏等场景下,意义很大,早期低版本的Android设备,是没法直接采集扬声器audio的(从Android 10开始支持),所以,如果需要采集扬声器audio,需要先做系统版本判断
Android打开关闭手机扬声器 1.添加权限 <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> 2 AudioManager) getSystemService(AUDIO_SERVICE)); 3.设置几个属性 private boolean isSpeakerOpen = true;//默认开启手机扬声器 Exception e) { e.printStackTrace(); } Toast.makeText(MainActivity.this, "打开扬声器 ", Toast.LENGTH_SHORT).show(); } 6.关闭扬声器 public void CloseSpeaker() { try { Exception e) { e.printStackTrace(); } Toast.makeText(MainActivity.this, "关闭扬声器
AudioManager.FX_FOCUS_NAVIGATION_UP; AudioManager am = (AudioManager) getSystemService(Context.AUDIO_SERVICE); if (扬声器模式 direction, flags); } return true; } return super.onKeyDown(keyCode, event); } 听筒、扬声器 AudioManager.STREAM_SYSTEM), AudioManager.FX_KEY_CLICK); } else { audioManager.setSpeakerphoneOn(false);//关闭扬声器 accessibility prompts */ public static final int STREAM_ACCESSIBILITY = AudioSystem.STREAM_ACCESSIBILITY; 参考: Android 听筒扬声器切换(多机型兼容、兼容5.0以上)
、音频采集层、传输层、稳定性优化层 五个维度,完整、系统地解析大牛直播 SDK 在 Android 端是如何做到“高画质 + 低延迟 + 高稳定”的。 1.1 前台服务:Android 8.0+ 的保命法则在 StreamMediaDemoService.java 中,SDK 将屏幕采集、音频采集、推流引擎全部挂在 Foreground Service 二、视频采集:MediaProjection + VirtualDisplay 的零拷贝设计Android 屏幕采集的核心是 MediaProjection,但真正的工程难点在于“如何将屏幕像素高效送入编码器 (Android 10+) 自定义 AudioPlaybackCaptureConfiguration 与 MediaProjection 绑定 防止音频重复采集(手机扬声器回灌问题) 并最终将 七、总结:SmartServicePublisherV2 在 Android 屏幕采集方向的工程优势综合全文可以看到,大牛直播 SDK的SmartServicePublisherV2 demo实例,在移动端屏幕采集链路上的优势并不是某一个点
前言 博主的毕设系统在做一个餐厅的点餐管理系统,在记性移动端页面开发的时候突发奇想做一个呼叫服务员,扬声器发声的一个功能类似于:“工作人员请注意,桌号8001顾客正在寻求帮助!”。 另述 这里说到了调用扬声器发声,不放还可以想一下如何调用麦克风收音。 好了,在这里就结束了 更新 博主把自己的毕设项目打包放到自己的服务器上,这个扬声器出现了新的问题。 本来所有的基础都是在本地运行的,通过调用本地dll文件实现扬声器发声,现在部署到centOS上将会失去这个dll的支持,目前所存在的问题是如何不使用dll文件实现这个功能,中间借助了.wav后缀的音视频文件
采集的话,10.0以上版本,按照上述设置即可获取到数据。 /采集扬声器,需要android 10.0+版本}private void CheckInitAudioRecorderSpeaker() { if (audioRecordSpeaker_ == null 我们考虑到,在做无纸化同屏或者教育投屏的时候,一般来说,主要还是采集麦克风音频为主,中间如果有视频播放或者类似需求的时候,我们把内录audio的打开即可(也可以做混音模式,或者推送过程中,实时静音麦克风或扬声器数据源 ,当然也可以实时调节二者的音量),具体在初始化的时候,可以做下设置://audio mix模式下, 如果需要切换麦克风和扬声器数据源,针对麦克风或扬声器实时静音即可//混音模式下,也可以针对麦克风或扬声器 (publisherHandle, index, 0.0f);}无图无真相,Android平台RTMP推送端或者轻量级RTSP服务测,采集到屏幕画面和扬声器声音,打包传输,RTMP或RTSP播放端录制下来的同屏画面视频如下
Android系统要求每一帧都要在 16ms 内绘制完成,平滑的完成一帧意味着任何特殊的帧需要执行所有的渲染代码(包括 framework 发送给 GPU 和 CPU 绘制到缓冲区的命令)都要在 16ms 这个词可以概括这个类的工作,如果android系统是一场芭蕾舞,他就是Android UI显示这出精彩舞剧的编舞,指挥台上的演员们相互合作,精彩演出。Google的工程师看来挺喜欢舞蹈的! 相对来说我们可以借鉴大量的采集逻辑,然后只要在获取关键性数据进行调整就好了。 数据在子线程中采集,避免采集数据卡顿主线程。 以下是性能采集的工具类同时采集了cpu数据,各位可以直接使用。 Also of Android Q the sample rate allowed by this API is significantly limited, if called faster the
本篇详细介绍一下基于 Android OpenSL ES 实现音频的采集与播放。 1. OpenSL ES 是什么? 在 Android 开发中,Google 官方从 Android 2.3 (API 9)开始,便支持了 OpenSL ES 标准 ,并且对其进行了扩展。 本文介绍的 OpenSL ES 是针对 Android NDK 开发来说。 2. 代码实现 以下代码主要实现音频数据的采集、保存和播放。 __android_log_print(ANDROID_LOG_INFO,"byteflow",FORMAT,##__VA_ARGS__); #define LOGE(FORMAT, ...)
[视频采集处理]Windows平台涵盖“Windows视频采集处理SDK”功能; [音频采集处理]Windows平台涵盖“Windows音频采集处理SDK”功能; [本地预览]Windows平台支持摄像头 ]除常规YUV格式外,Windows平台还支持MJPEG格式的摄像头采集; [麦克风/扬声器采集]Windows平台音频输入端支持麦克风、扬声器,或麦克风和扬声器混音输入; [RTMP推流]超低延时的 平台支持Speex推送、Speex编码质量设置; [音量调节]Windows/Android平台采集端支持实时音量调节(其中,Windows平台混音模式下支持单独控制麦克风、扬声器音量); [H.264 /iOS推送SDK支持RTMP扩展H.265推送,Windows针对摄像头采集软编码,使用H.265可变码率,带宽大幅节省,效果直逼传统H.265编码摄像头,Android/iOS平台支持H.265硬编码 模式设置(需服务器支持); [镜像]Android/iOS平台支持前置摄像头实时镜像功能; [前后摄像头实时切换]Android/iOS平台支持采集过程中,前后摄像头切换; [复杂网络处理]支持断网重连等各种网络环境自动适配
整体架构大牛直播SDK跨平台RTMP直播推送模块,始于2015年,支持Windows、Linux(x64_64架构|aarch64)、Android、iOS平台,支持采集推送摄像头、屏幕、麦克风、扬声器 、启/停用Aero;[音频]采集麦克风;[音频]采集扬声器;[预览]支持推送端实时预览;支持实时静音、取消静音;[对接服务器]支持自建标准RTMP服务器或CDN;支持断网自动重连、网络状态回调;屏幕和摄像头合成 /多层合成;支持窗口采集(一般不建议使用);支持实时动态水印;支持实时快照;支持降噪处理、自动增益控制、VAD端点检测;支持扬声器和麦克风混音;支持外部编码前音视频数据对接;支持外部编码后音视频数据对接 );支持实时快照;支持降噪处理、自动增益控制、VAD端点检测;支持扬声器和麦克风混音;支持外部编码前音视频数据对接;支持外部编码后音视频数据对接;支持实时音量调节;支持扩展录像模块;支持Unity接口; 、关键帧间隔(GOP)、码率(bit-rate)设置;支持RTMP推送 live|record模式设置;支持前置摄像头镜像设置;支持软编码、特定机型硬编码;支持横屏、竖屏推送;支持Android屏幕采集推送
平台,支持采集推送摄像头、屏幕、麦克风、扬声器、编码前、编码后数据对接,功能强大,性能优异,配合大牛直播SDK的SmartPlayer播放器,轻松实现毫秒级的延迟体验,满足大多数行业的使用场景。 、启/停用Aero;[音频]采集麦克风;[音频]采集扬声器;[预览]支持推送端实时预览;支持实时静音、取消静音;[对接服务器]支持自建标准RTMP服务器或CDN;支持断网自动重连、网络状态回调;屏幕和摄像头合成 /多层合成;支持窗口采集(一般不建议使用);支持实时动态水印;支持实时快照;支持降噪处理、自动增益控制、VAD端点检测;支持扬声器和麦克风混音;支持外部编码前音视频数据对接;支持外部编码后音视频数据对接 、关键帧间隔(GOP)、码率(bit-rate)设置;支持RTMP推送 live|record模式设置;支持前置摄像头镜像设置;支持软编码、特定机型硬编码;支持横屏、竖屏推送;支持Android屏幕采集推送 音频采集:音频输入端支持麦克风、扬声器,或麦克风和扬声器混音输入。在 Windows 平台混音模式下,还支持单独控制麦克风、扬声器音量。
借用人耳听不到的声波入侵电脑,然后通过系统的扬声器进行传输,听上去像是电影中的情节。但是,两名德国研究者表示,这种事并不只是传说。 如果黑客设法给该电脑植入恶意软件,该软件可以通过这台电脑的扬声器将数据传到附近联网的电脑中。传输信号在附近的设备中跳转,构成网状网络(mesh network),直到它找到一台带有网络的设备为止。
前言 这篇文章简单介绍下移动端Android系统下利用OpenSL ES进行音频采集方法。 权限申请 想要使用 OpenSL ES,需要在AndroidManifest.xml的配置文件里面增加权限 <uses-permission android:name="android.permission.RECORD_AUDIO 引用相关库文件以及头文件 怎么导入OpenSL ES库 「CMake方式」:CMakeList.txt中加入 #找打Android lib库里面的libOpenSLES.so的库 find_library ,需要调用接口停止采集并在适当的时机释放 OpenSL ES 相关资源。 结语 上一篇博客了介绍了Android利用AudioRecord进行录音导出PCM数据。 本文同步发布于简书、CSDN。
前言 最近收到用户反馈直播录制文件在Android手机上播放声音异常,几乎听不到声音,只有滋滋的电流声,但是在ios、pc端播放却是正常的,是Android手机的问题还是视频本身的问题呢? 图片.png 我们先来了解下什么是声道:声道指声音在录制或者播放时不同空间位置采集或回放的相互独立的音频信号,所以声道数也就是声音录制时的音源数量或回放时扬声器的数量。 目前市面上大多数的Android手机都是单声道的(也就是只有一个扬声器),上面我们说到此视频是双声道的,那是否双声道音视频在单声道机型上播放都没有声音呢?非也! 2、亡羊补牢 1)使用FFmpeg命令处理,音频流仅保留左声道,输出到新的文件(有声音.mp4)中,输出文件音频流声道类型为mono(即单声道),这种情况下,当设备有两个扬声器,两个扬声器依旧都能听到声音 ,只不过播放的都是同一声道的音频源,所以波形也都是一样的(如图5),最后在Android设备播放测试声音正常。
任务描述: 安装扩展库PyAudio,编写程序,录制电脑扬声器的声音,保存为wav波形音乐文件。 相关阅读: 使用Python翻录网络在线音乐保存本地文件 上面文章中的程序使用扩展库sounddevice录制电脑扬声器声音时,在个别声卡上工作会不正常,会出现一卡一卡的现象。 本文使用标准库wave+扩展库PyAudio录制扬声器声音避免了这个问题。
高分屏采集编码效率低怎么办高分屏,不管是Windows还是Android,采集后的数据,建议先压缩,再编码,Windows平台我们可以设置压缩比例(scale rate),Android平台亦可,比如采集原始屏幕 Android横竖屏自动适配Android平台,如果是pad采集,基本就是横屏采集,如果手机端,需要确保横竖屏模式下都可以正常采集。4. 为什么要考虑补帧Android的时候,一定的采集模式下,屏幕如果没有变化,不会一直有实时屏幕数据回调下来,这时候,为了保持帧率或数据采集的完整性,建议补帧。5. 能不能采集到扬声器的audio? Windows不在话下,Android平台需要高版本支持,高版本是可以采集到扬声器数据的,我们也实现了相关的demo,可以同时采集麦克风和扬声器的audio,单独推送或者同时混音输出。11.
camera1.jpg 前言 今天为大家介绍一下使用Camera1进行视频采集。之前我写过一篇文章介绍的是Camera2进行视频采集。那么有人会问,为什么有了Camera2还要介绍Camera1呢? 这里最主要的原因是因为Android版本众多,Camera2是Google新推出的视频采集架构,但很多老的机型还不支持,所以为了兼容性的问题,我们还不能放弃使用Camera1进行视频的采集。 <uses-permission android:name="android.permission.CAMERA" /> 第二步,动态申请Camera权限。 Android在Android 6.0后,对根限的管理更严格了,除了上面要静态申请权限外,还要通过调用 requestPermissions 函数动态申请Camera权限。 参考 视频渲染之EGL Android视频采集Camera2 http://www.jianshu.com/p/39a015f2996e ----
SkeyeLive是OpenSKEYE开源流媒体团队开发的一款功能丰富的开源PC端流媒体推流拉流直播软件项目,目前支持Windows、Android版本,后续将支持ios版本,其中Windows版本的SkeyeLive 支持多种源接入,包括Windows摄像头、麦克风、扬声器、RTSP摄像机、屏幕桌面等,采集后经过264、265软硬件编码、推送到内置SkeyeLive流媒体服务进行转发;同时SkeyeLive还支持通过 SkeyeLive服务端调用接口头文件:skeyelive.h----------采集模块采集分为音频和视频采集,音频采集分为麦克风和扬声器采集,视频采集又分为摄像头和屏幕采集;摄像头采集接口API接口主要有 */ void stopCaptureAudioInput();开始采集音频输入(麦克风)停止采集音频输入开始采集音频输出(扬声器) /** * @brief 开始采集音频输出 (扬声器) * @warning 需要 AudioDevice::type == Audio_Output * @param output 音频输出 */ void startCaptureAudioOutput
SkeyeLive是OpenSKEYE开源流媒体团队开发的一款功能丰富的开源PC端流媒体推流拉流直播软件项目,目前支持Windows、Android版本,后续将支持ios版本,其中Windows版本的SkeyeLive 支持多种源接入,包括Windows摄像头、麦克风、扬声器、RTSP摄像机、屏幕桌面等,采集后经过264、265软硬件编码、推送到内置SkeyeLive流媒体服务进行转发;同时SkeyeLive还支持通过 SkeyeLive服务端调用接口头文件:skeyelive.h----------采集模块采集分为音频和视频采集,音频采集分为麦克风和扬声器采集,视频采集又分为摄像头和屏幕采集;摄像头采集接口API接口主要有 */ void stopCaptureAudioInput();开始采集音频输入(麦克风)停止采集音频输入开始采集音频输出(扬声器) /** * @brief 开始采集音频输出 (扬声器) * @warning 需要 AudioDevice::type == Audio_Output * @param output 音频输出 */ void startCaptureAudioOutput
技术实现启动大牛直播SDK的SmartPublisherDemo.exe,先选择摄像头,配置分辨率、帧率码率,“采集摄像头”-->选择需要共享的摄像头,并选择分辨率和帧率,如果需要采集麦克风或扬声器,勾选即可 总结之前说过多次,轻量级RTSP服务的优势是,无需用户单独部署RTSP或者RTMP服务,即可实现本地的音视频数据(如摄像头、屏幕、窗体、麦克风、扬声器),编码后,汇聚到内置RTSP服务,然后,对外提供可供拉流的 、启/停用Aero;[音频]采集麦克风;[音频]采集扬声器;[预览]支持推送端实时预览;支持实时静音、取消静音;屏幕和摄像头合成/多层合成;支持窗口采集(一般不建议使用);支持实时动态水印;支持实时快照 ;支持降噪处理、自动增益控制、VAD端点检测;支持扬声器和麦克风混音;支持外部编码前音视频数据对接;支持外部编码后音视频数据对接;支持特定机型硬编码;支持实时音量调节;支持扩展录像模块;支持RTSP端口设置 服务模块,可满足安防监控、内网无纸化、智慧教室等内网场景,通过接口即可实现和自身业务逻辑对接,无需单独部署流媒体服务,使用更便捷,除Windows平台外,Linux(x64_64架构|aarch64)、Android