导航:首页 > 操作系统 > androidvoicecall

androidvoicecall

发布时间:2023-01-20 13:25:17

android 实现静音的几种技术

//关闭扬声器
public void CloseSpeaker() {
try {
AudioManager audioManager = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);
if(audioManager != null) {
if(audioManager.isSpeakerphoneOn()) {
audioManager.setSpeakerphoneOn(false);
audioManager.setStreamVolume(AudioManager.STREAM_VOICE_CALL,currVolume,
AudioManager.STREAM_VOICE_CALL);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}

㈡ 安卓手机通话怎么录音

若是使用vivo手机,拨打电话时,点击通话界面的“录音”即可录制通话内容。

一、设置通话自动录音的方法:

1、进入i管家--实用工具--辅助功能--通话录音--选择“所有通话自动录音”或“指定”号码自动录音;

2、设置--(应用与权限--系统应用设置)--电话--通话录音--选择“所有通话自动录音”或“指定号码自动录音”,设置后,当开始通话时,手机会自动进行录音。

㈢ Android 怎么判断设备是否静音

静音就是音量为0了, 用AudioManager来取当前的音量,判断是否为0即可。
但是Android系统的音量有很多种:STREAM_VOICE_CALL、STREAM_SYSTEM、STREAM_RING、STREAM_MUSIC、STREAM_ALARM

㈣ android怎么调用系统声音

Android中手机声音调节步骤:

a、通过系统服务获得声音管理器:

AudioManager audioManager = (AudioManager)getSystemService(Service.AUDIO_SERVICE);

b、根据实际需要调用适当的方法:(常用方法)

audioManager.adjustStreamVolume(int streamType, int direction, int flags);

streamType:声音类型,可取的为STREAM_VOICE_CALL(打电话时的声音), STREAM_SYSTEM(Android系统声音), STREAM_RING(电话铃响), STREAM_MUSIC(音乐声音)or STREAM_ALARM(警告声音)。

direction:调整音量的方向,可取为ADJUST_LOWER(调低音量), ADJUST_RAISE(调高音量), or ADJUST_SAME(保持先前音量)。

flags:可选标志位(如要显示出音量调节UI,使用如下flag:AudioManager.FLAG_SHOW_UI)。

audioManager.setStreamMute(int streamType, boolean state);设置指定声音类型(streamType)是否为静音。如果state为true,则设置为静音;否则,不设置为静音。

audioManager.setRingerMode(int ringerMode);

设置铃音模式,可取值为RINGER_MODE_NORMAL(铃音正常模式), RINGER_MODE_SILENT(铃音静音模式), or RINGER_MODE_VIBRATE(铃音震动模式,即铃音为静音,启动震动)。

audioManager.setMode(int mode);

设置声音模式,可取值为MODE_NORMAL(正常模式,即在没有铃音与电话的情况), MODE_RINGTONE(铃响模式), MODE_IN_CALL(接通电话模式)or MODE_IN_COMMUNICATION(通话模式)。

注意:声音的调节是没有权限要求的。

㈤ 关于Android的MediaRecorder.AudioSource设置成VOICE_CALL为什么录不到声音

法律 问题 ,导致 不少 手机 禁止 了 VOICE_CALL

㈥ Android音频播放

最近需要在Android的客户端中使用PCM声音播放和录制,简单学习了一下。有不正确的地方还请指出。

首先有几个概念需要了解一下:采样频率、声道数、采样位数。

采样频率一般是sample rate, 代表的是数字化音频时每秒采样的次数。常见的有44.1KHz(CD品质)、48KHz等。

这个很好理解,单声道Mono就是声音从一个方向传出来;双声道Stereo也叫立体声,声音是从两个方向传来。通常的流行音乐中,仔细听能发现每个声道可能侧重不同的乐曲声部,比如左声道吉他,右声道钢琴,人声似乎两个声道都有,听起来就像站在中间一样。(这里没有考证,随便举例)

每一个采样都是一个数据点,采样位数是指这个数据点使用了几位来记录。AudioTrack类只支持8位和16位的PCM音频。8位就是2的8次方,即256个值;而16位则是2的16次方,有65536个值。

这个在音频的编解码中还是比较常用的。在PCM格式中,1秒钟音频的数据大小是SampleRate×Channel×Bit/8,单位是byte字节。由于PCM本身没有音频帧的概念,所以通过这个公式就能计算出任意时长音频的大小,或者得到任意大小音频的时长。如果规定1个音频帧是“每个声道256个采样”,双声道下就是512个采样,那么1帧的数据量就是256×Channel×Bit/8,同理可以推断出1秒钟有多少音频帧等等。音频帧的概念在各种编解码中各有不同,但计算公式大同小异,这里不展开。

Android中音频的播放使用的是AudioTrack类,具体用法非常简单。
首先设置buffer大小。AudioTrack播放时需要先写入buffer,如果这个buffer没有写满,那么这部分是不会播放的。所以buffer不能设置太小,这样会导致播放不连贯;而buffer也不能设置太小,这样不间断写入会消耗许多CPU资源。AudioTrack自带了getMinBufferSize方法可以给出一个最小buffer,一般用这个值就可以。getMinBufferSize方法三个参数分别是sample rate、channel和bit。

设置完buffer size就可以实例化一个AudioTrack。其中第一个参数streamType是指不同的音频流类型,包括STREAM_MUSIC、STREAM_ALARM、STREAM_VOICE_CALL、STREAM_RING等,是Android对不同音频的分类。中间三个参数很好理解,第四个是buffer size,刚刚计算出来了。最后一个参数mode有两种:MODE_STREAM和MODE_STATIC。前者是以流形式播放,后者则是一次性全部写入然后播放。

调用实例的play()方法就可以开始播放了。不过播放得要有数据吧?要填写数据就要用到write()方法。write方法中第一个参数是一个byte[]类型,是要写入的数据源,可以是从文件流中读取出来的;第二个参数offset是初始位移,即从source的哪个位置开始;第三个参数则是输入长度。

当write方法写满一个AudioTrack的buffer时,就会有声音播放出来了。
当播放完成后记得要把AudioTrack停止并释放。

㈦ Android中如何实现通话内录

在通话是直接按(真实按键不是屏幕里的)最左边的键,就可以看到录音了

㈧ android 5.0怎么设置音乐从听筒播放

5.0 之前 可以用AudioManager.setMode来设置phone state 来达到切换听筒的目的,但是5.0之后非系统应用没有这个权限了。发现微信依然可以切换,研究了下底层设备切换发现是如下操作的:
1.播放音频流类型要设置为AudioManager.STREAM_VOICE_CALL
2.在播放前调用AudioSystem.setForceUse(AudioSystem.FOR_COMMUNICATION,AudioSystem.FORCE_NONE);
这个调用需要 在AndroidManifest.xml中添加 android.permission.MODIFY_AUDIO_SETTINGS 权限
并且AudioSystem这个类是隐藏类,在Android 公开API中没有,所以需要用反射调用,或者自己编译出一个framework.jar包,放到工程里,不过这样有可能兼容性不是很好。

㈨ android5.1设置所有音量通道为媒体音量

如进入一个页面希望设置媒体音量为最大:代码如下:

//获取最大媒体音量值

int max = mAudioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);

//设置媒体音量为最大值,当然也可以设置媒体音量为其他给定的值

mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC, max,0);

java代码:

AudioManager mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);

//通话音量

int max = mAudioManager.getStreamMaxVolume( AudioManager.STREAM_VOICE_CALL );

int current = mAudioManager.getStreamVolume( AudioManager.STREAM_VOICE_CALL );

Log.d(“VIOCE_CALL”, “max : ” + max + ” current : ” + current);

//系统音量

max = mAudioManager.getStreamMaxVolume( AudioManager.STREAM_SYSTEM );

current = mAudioManager.getStreamVolume( AudioManager.STREAM_SYSTEM );

Log.d(“SYSTEM”, “max : ” + max + ” current : ” + current);

//铃声音量

max = mAudioManager.getStreamMaxVolume( AudioManager.STREAM_RING );

current = mAudioManager.getStreamVolume( AudioManager.STREAM_RING );

Log.d(“RING”, “max : ” + max + ” current : ” + current);

//音乐音量

max = mAudioManager.getStreamMaxVolume( AudioManager.STREAM_MUSIC );

current = mAudioManager.getStreamVolume( AudioManager.STREAM_MUSIC );

Log.d(“MUSIC”, “max : ” + max + ” current : ” + current);

//提示声音音量

max = mAudioManager.getStreamMaxVolume( AudioManager.STREAM_ALARM );

current = mAudioManager.getStreamVolume( AudioManager.STREAM_ALARM );

Log.d(“ALARM”, “max : ” + max + ” current : ” + current);

ps:

游戏过程中只允许调整多媒体音量,而不允许调整通话音量。

setVolumeControlStream(AudioManager.STREAM_MUSIC);

长时间不动,不允许黑屏,View.setKeepScreenOn(true);

估计manifest文件中需要注册权限吧

调节媒体音量

AudioManager audio = (AudioManager) getSystemService(Service.AUDIO_SERVICE);

//参数三AudioManager.FLAG_PLAY_SOUND | AudioManager.FLAG_SHOW_UI表示在调整媒体音量的时候会发出声音,并且弹出音量调整对话框

//如果不想要这些,可以设置为0

mAudioManager.adjustStreamVolume(AudioManager.STREAM_MUSIC,

AudioManager.ADJUST_RAISE, AudioManager.FLAG_PLAY_SOUND

| AudioManager.FLAG_SHOW_UI);

重写 Activity 的 onKeyDown 方法

@Override

public

boolean

onKeyDown(

int

keyCode, KeyEvent event) {

switch

(keyCode) {

case

KeyEvent.KEYCODE_VOLUME_UP:

audio.adjustStreamVolume(

AudioManager.STREAM_MUSIC,

AudioManager.ADJUST_RAISE,

AudioManager.FLAG_PLAY_SOUND | AudioManager.FLAG_SHOW_UI);

return

true

;

case

KeyEvent.KEYCODE_VOLUME_DOWN:

audio.adjustStreamVolume(

AudioManager.STREAM_MUSIC,

AudioManager.ADJUST_LOWER,

AudioManager.FLAG_PLAY_SOUND | AudioManager.FLAG_SHOW_UI);

return

true

;

default

:

break

;

}

return

super

.onKeyDown(keyCode, event);

}

㈩ android声音通道怎么理解

由于使用的是耳机 麦克分离式的耳机,所以要分别上报事件。在Android系统层耳机插孔的检测是基于/sys/class/switch/h2w/state的值来判断的(以4.4.4_r2为例子位于WiredAccessoryManager.java)。

只要在内核中实现一个“或真或假”的基于switch类的h2w开关。Android系统就可以监听到插拔信息。
在播放音乐的时候插入耳机,使用tinymix(参考:Android音频底层调试-基于tinyalsa)命令可以查找到Playback Path的值从SPK变为HP_NO_MIC,就可以说明耳机插拔软件检测正常了。

# tinymix
Mixer name: 'RK_RK616_TINY'
Number of controls: 7
ctl type num name value
0 ENUM 1 Playback Path HP_NO_MIC
1 ENUM 1 Capture MIC Path MIC OFF
2 ENUM 1 Voice Call Path OFF
3 ENUM 1 Voip Path OFF
4 INT 2 Speaker Playback Volume 24 24
5 INT 2 Headphone Playback Volume 24 24
6 ENUM 1 Modem Input Enable ON

阅读全文

与androidvoicecall相关的资料

热点内容
程序员那么可爱陆漓和姜逸城吻戏 浏览:802
android获取窗口大小 浏览:180
程序员为世界带来的贡献 浏览:214
程序员招聘自荐信 浏览:693
魔兽键位设置命令宏 浏览:645
程序员没有目标了 浏览:828
抢答器c程序编程 浏览:703
什么app可以自己玩 浏览:76
刨客app是什么 浏览:963
cad输入命令栏不见了 浏览:834
做故事集可以用什么app 浏览:692
qq邮箱发送压缩包 浏览:672
程序员桌面机器人 浏览:589
xjr快速开发平台源码 浏览:159
java接口runnable 浏览:31
python怎么运行web服务器 浏览:349
notepad编程代码 浏览:740
什么安卓的毛病最少 浏览:611
hp的pjl设备访问命令 浏览:635
googlewebp图片压缩技术 浏览:215