如何提高Android PJSIP的麦克风音量水平?
我已将 pjsip 与 android 集成在一起.在我的应用程序中拨打电话时,扬声器的工作正常,但是录制麦克风音量太 low .另一方面我的声音无法听到. 注意:,但是在某些手机中它正常工作. 即使我尝试使用 ratchstreamvolume(),setStreamVolume(),setMode(),adpadvolume()方法以增加我的音量水平,无论如何它都不会增加.请给我一个建议,以解决此问题以提高Android或PJSIP的麦克风体积水平. 预先感谢. 解决方案 问题是麦克风的体积水平太低了,当我们的应用程序通过麦克风访问.当您的体积较低时,您需要检查多个内容. 使用麦克风时,其中之一是音频管理器的模式. 获得Android音频管理器的模式:: AudioManager am = (AudioManager) getSystemService(Context.AUDIO_SERVICE); long mode = am.getMo
6 2024-02-18
编程技术问答社区
安卓手机静音/取消静音
我的目标是支持2个操作: 静音电话(可能启用了振动/禁用),因此,接到呼叫或SMS时,它不会产生噪音 取消电话并在静音电话之前恢复状态 我该怎么做? AndroidManifest中需要哪些权限? 解决方案 这是振动到清单文件 的权限 这是为了将设备置于振动 的静音模式下 AudioManager audioManager = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE); audioManager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE); 这是为了放入铃声模式 AudioManager audioManager = (AudioManager)context.getSystemServ
6 2024-02-17
编程技术问答社区
如何在安卓系统中以编程方式提高铃声和通知音量
我试图启用铃声正常模式并以编程方式增加音量. AudioManager mobilemode = (AudioManager)mContext.getSystemService(Context.AUDIO_SERVICE); // int streamMaxVolume = mobilemode.getStreamMaxVolume(AudioManager.STREAM_RING); switch (mobilemode.getRingerMode()) { case AudioManager.RINGER_MODE_SILENT: Log.i("MyApp","Silent mode"); mobilemode.setRingerMode(AudioManager.RINGER_MODE_NORMAL); mobilemode.setStreamVolume (AudioManager.STREAM_MUSIC,mo
0 2024-02-17
编程技术问答社区
安卓BroadCastReceiver的音量键向上和向下。
如果用户可以在我的广播接收器中向上或向下按音量键?我需要完整的代码. 这是我的意图过滤 IntentFilter filter = new IntentFilter(); filter.addAction("android.media.VOLUME_CHANGED_ACTION"); 和我的onReceive方法是 public void onReceive(Context arg0, Intent intent) { KeyEvent ke = (KeyEvent)intent.getExtras().get(Intent.EXTRA_KEY_EVENT); if (ke .getKeyCode() == KeyEvent.KEYCODE_VOLUME_UP) { System.out.println("I got volume up event"); }else if (ke .get
0 2024-02-15
编程技术问答社区
对音量变化是否有一个广播动作?
我正在编程一个小型小部件,每当用户更改铃声或振动设置时,都需要更新. 捕获android.media.VIBRATE_SETTING_CHANGED在振动设置中工作正常,但是当铃声音量更改时,我还没有找到任何通知的方法,尽管我可以尝试捕获用户在用户按下音量升高/音量下调/音量下的物理键时,在不使用这些密钥的情况下更改音量的其他选项. 您是否知道是否有任何广播动作为此定义或任何方法来创建一个或没有问题的问题? 解决方案 没有广播动作,但是我确实发现您可以连接一个内容观察者,以在设置更改时被通知,流的数量是其中一些设置.注册android.provider.settings.system.content_uri将通知所有设置更改: mSettingsContentObserver = new SettingsContentObserver( new Handler() ); this.getApplicationContext().getContentResolv
0 2024-02-15
编程技术问答社区
安卓。检测请勿打扰的状态?
我只是想知道是否有一种方法可以检查 Android设备(21+)是否处于"不要打扰模式"?我知道有AudioManager.RINGER_MODE_SILENT,但是我想知道这是否与这种情况有关,或者是否有更好的检查方法? 解决方案 我正在带上这篇文章中的Necro,但只是在寻找解决方案,并像我一样经过此帖子,因此为将来的参考提供了解决方案. 我找不到一种"官方"的方法,但确实找到了一个可以返回DND状态作为整数的价值.该功能在内部称为" zen_mode",因此您可以使用以下代码检查当前值: Global.getInt(getContentResolver(), "zen_mode") 将返回: 0 - 如果DND为 off . 1 - 如果DND为 - 优先级 2 - 如果DND为 - 总静音 3 - 如果DND为 - 仅警报 仅设置优先级时,它就不会返回,但是您可以通过假设No News =优先消息模式来弄清楚该状态.这一定是一个错误,因为
0 2024-02-12
编程技术问答社区
你如何在安卓系统中获得/设置媒体音量(spotify)和TTS?
同时减少流量并增加TTS体积 我都有这个Android应用程序,每次都会与TTS交谈并使用流媒体音乐(Spotify).因此,我需要减少体积并增加TTS 我使用此代码,但也降低了TTS. AudioManager audioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE); audioManager.setStreamVolume(AudioManager.STREAM_MUSIC,[int value],[if desired a flag]); 任何减少Spotify的方法. 在Java/Android中. 解决方案 您想做的是知道'音频躲避' 这是一些示例代码: /** * Our {@link AudioManager.OnAudioFocusChangeListener} */ private static Audio
2 2024-02-09
编程技术问答社区
使用Delphi,我试图改变AndroidTTS的音量,但我似乎一直得到错误 "外部异常1"
我正在使用这些库: 这是我的源代码: unit Unit1; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, SpeechRecognition, FMX.Controls.Presentation, FMX.ScrollBox, FMX.Memo, FMX.StdCtrls, FMX.Memo.Types, AndroidTTS, FMX.Media, System.IOUtils; type TForm1 = class(TForm) SpeechRecognition1: TSpeechRecognition; Memo1: TMemo; Button1:
0 2024-02-07
编程技术问答社区
安卓系统中STREAM_RING的setStreamVolume在RING时并不总是工作。
我正在尝试执行此简单的应用程序,该应用程序允许手机响起,但在Android 4(ICS)下接收通知时不播放声音.为此,我将环/通知流设置为0(静音).接到电话时,我将环卷设置为最大(P.E. 7),然后在空闲时,我将其转回0(静音). 为此,我使用了这个简单的代码. public class ReceiverClass extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if ("android.intent.action.PHONE_STATE".equals(intent.getAction())) { String state = intent.getStringExtra(TelephonyManager.EXTRA_STATE); AudioMan
0 2024-02-07
编程技术问答社区
安卓应用程序中的音频声音太低
我录制了大约50个应用程序中使用的一些音频文件,因此我不想再次记录所有音频文件.我最近使用Soundpool在真实设备而不是模拟器上播放音频文件,您几乎无法听到它们.在模拟器上,将我的PC卷设置为最大设备和最大设备,我可以听到它的声音.我应该尝试更大的记录文件还是还有其他选项? 解决方案 我发现,当针对移动设备(以及便宜的/小笔记本电脑扬声器)时,最好为您的音频做两件事: 压缩:我不是指数据压缩,我的意思是动态对比度压缩.这将消除录音的响亮部分和软部分之间的一些级别差异,从而使所有水平都能更好地听到. 归一化:当您归一化音频时,您会采用音频的最大声音,并扩展整个音频剪辑. 您可以轻松地使用任何音频编辑软件,例如最后,您还应该记住如此小的扬声器上可再现的频率. 这些说话者中的大多数都构建了言语.因此,您会发现它们在700Hz-2.5kHz范围内往往是最大的. 也就是说,如果您的声音效果频率很低(想想低音),那么几乎不可能在手机的小扬声器上听到它们的声音,该扬声
2 2024-02-07
编程技术问答社区
MediaSessionCompat的行为在Android 12中发生了变化,SetPlayBackToremote停止正常工作
在Android 12之前,我使用下面的代码来检测按下我的自定义UI的物理音量按钮,但是当我按下卷按钮时,它停止在Android 12设备上工作,而onAdjustVolume从未被调用: mediaSessionCompat = MediaSessionCompat(context, "My App") mediaSessionCompat?.isActive = true mediaSessionCompat?.setPlaybackState( PlaybackStateCompat.Builder() .setState(PlaybackStateCompat.STATE_PLAYING, PlaybackStateCompat.PLAYBACK_POSITION_UNKNOWN, 1f) .build()) mediaSessionCompat?.setPlaybackToRemote
8 2024-02-07
编程技术问答社区
用Android Exoplayer调整Dash流的音量
我正在尝试设置一个Seekbar来控制Exoplayer流仪的实例. 我正在使用的设置是演示项目的修改版本,并且难以确定我应该尝试与Seekbars输出相关的哪个元素,即如何正确使用MSG_SET_VOLUME 任何输入都将不胜感激. 我正在寻找的最终结果是一个具有两个范围的应用程序的应用数学是正确的) 同样,任何帮助都将不胜感激,到目前为止,我已经有一段时间了,这是一个新手!谢谢大家! 解决方案 如果正确读取了exoplayer源代码,则必须在准备exoplayer实例时对您使用的听觉者进行引用. exoPlayer.prepare(audioRenderer); 要更改卷,您必须发送以下消息: exoPlayer.sendMessage(audioRenderer, MediaCodecAudioTrackRenderer.MSG_SET_VOLUME, 0.1f); 首先,您要通过要更改卷的Audiorenderer.其次,您要定义要发送给渲
0 2024-02-06
编程技术问答社区
我怎样才能得到最小的数量?
我知道下面的代码是最大音量 mAudioManager.getStreamMaxVolume 如何获得最小音量? 我使用此代码,但不使用最小音量 mAudioManager.getStreamVolume(0); 这是我的代码 int Minvolume=myAudioManager.getStreamVolume(0); int current=myAudioManager.getStreamVolume(AudioManager.STREAM_MUSIC); int volume=(int) (current-1); if (current>=Minvolume){ myAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC, volume, 0); handler.postDelayed(t
0 2024-02-06
编程技术问答社区
处理安卓锁屏上的音量变化?
我要做的是,能够在Android 4.4上的锁定屏幕上捕捉到上/向下的按钮操作. Google Cast Design Design Sectlist 文档描述锁定屏幕需求"通过硬件按钮提供对卷控件的访问".我尝试了各种方法来处理锁定屏幕上的硬件音量按钮,但它们都没有用. onkeydown/dispatchKeyEvent - 我试图覆盖onkeydown以及有关活动的dispatchKeyevent方法,但是这些方法都不在锁定上执行,这些方法才能在我的应用程序专注时使用. 设置.system.content_uri/contentObserver - 在Main Activity的内容解析器上注册内容观察者确实会捕获系统设置会发生变化,但这也不会发生在Lockscreen上. android.intent.action.media_button - 让此过滤器在清单中,我能够从锁屏接收播放/暂停操作,但是没有卷更改事件. android.media.vo
2 2024-02-06
编程技术问答社区
安卓系统是否能够管理麦克风/输入的音量?
我到处搜索,包括Roottools来源.除了完全静音外,我找不到任何管理麦克风的东西.并且AudioRecorder.setMicrophoneMute(bool)方法内没有提示... 关于这个问题有几篇文章,但是它们都没有去任何地方(没有操作的错误".是否有可能覆盖OS并直接进入MIC硬件? 谢谢, -tre 解决方案 您不能直接设置录制卷,但是您可以通过从AudioreCord获得的字节数据更改您的操作(查看Audiotrack类,以减少卷轨道) 编辑:我忘了提到,如果您在音量尖峰方面遇到困难,则可以查看自动增益控制.一些设备会自动激活它,但是您可以手动启用它. 其他解决方案 有时,我得到了一个手机或平板电脑,麦克风输入量不佳. Android 4具有可调节的功能,但没有新版本.它使得不可能使用VoIP.这不仅是为了花哨的录音.
0 2024-02-05
编程技术问答社区
可转换为分贝的音频输出电平的形式
当手机在耳机上发出噪音时,我需要找到一种方法来获取当前音频输出量,该值将转换为分贝级别.除看似任意的音量设置水平以外,Android API似乎没有任何访问常数级别的方法,但是我看不到将其转换为标准分贝级别或"响度"测量的方法.我已经看到了为此使用麦克风的一些方法,但是这种方法无法很好地搭配耳机. 有人知道一种方法来测量最大可能的分贝(或某些标准)输出级别,以比较或可能发送到耳机的电压? 欢迎帮助. 解决方案 请注意,有" DECIBEL"一词的许多不同含义.它是代表相对于参考点的一些数量(例如强度/功率/响度)的一种手段.对于设备内部或音频应用程序中的音频信号,峰值水平为0dB.当扬声器发出声音时,感知到的响度被测量为声音压力水平经常描述,经常描述为" DB(SPL)"(或加权变体,例如DBA).当您在100dB上看到诸如岩石音乐会之类的值表时,这就是所描述的SPL.该测量本身相对于参考水平. 因此,API中的可用内容是音频数据的缓冲区,您可以从原始信号(最大
2 2024-02-05
编程技术问答社区
在安卓系统中(使用Java),我如何设置铃声的音量(到一个指定的数字)?
因此,在我的应用程序中,我有一个seekbar,允许用户设置铃声音量(0-100).我似乎找不到将铃声卷设置为指定号码的方法.我浏览了 audiomanager class 课程正常/静音/振动.那是不是我想要的.我希望该卷为 特定数字 .这是我要寻找的示例: private void setRinger (int volume) // volume = 0 - 100 { setRingVolume (volume); // Whenever a person gets a call/sms/warning/anything etc., it should be this volume. } 这在Android中可以吗?如果是这样,怎么样?你能给我一个例子说明我该怎么做吗? 谢谢. 解决方案 查找听众(在这里).它应该拥有您需要的一切,包括setVibrateSetting,setRingerMode,setStreamVolume.所有这些设置彼此分开
2 2024-02-05
编程技术问答社区
在对话框中按下音量增大时隐藏用户界面
按下音量_up/volume_down键时,是否可以隐藏卷UI.我知道,当显示对话框时触摸时,它似乎可以使用活动来完成. 有解决方案吗? 解决方案 这应该与对话框类别一起工作: AudioManager man = (AudioManager)getSystemService(Context.AUDIO_SERVICE); dialog.setOnKeyListener(new OnKeyListener() { @Override public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) { switch (event.getKeyCode()) { case KeyEvent.KEYCODE_VOLUME_UP: man.adjustStreamVolume(AudioManager.ST
0 2024-02-04
编程技术问答社区
无法在黑莓Playbook上设置音量
我在更改BlackBerry Play Book的数量方面有一个问题.首先,我将我的Android应用程序重新包装到Palybook应用程序.我需要使用SeekBar和SeekListener更改BlackBerry Playbook的卷,我正在设置音频管理器量.这是代码: audioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE); seekbar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() { public void onStopTrackingTouch(SeekBar seekBar) { // TODO Auto-generated method stub } public void onStartTrackingTouch(SeekBar seekBar) { // TODO Auto-generate
0 2024-02-03
编程技术问答社区
禁用吐司音量
我正在尝试使用听众. ,但它显示了本机Android卷UI(卷Seekbar)toast.我想禁用此功能. 我知道使用关键事件可以在活动中进行活动,但我想通过服务进行. 如何禁用吐司? 这是吐司的屏幕截图: 解决方案 AudioManager -class提供以下方法来调整某些流的体积: li> setStreamVolume(int, int, int) setStreamVolume(int, int, int) li> 所有这些方法都以flag参数为最后一个论点.对您来说很有趣的旗帜是 FLAG_SHOW_UI 显示包含当前体积的吐司. 因此,要摆脱吐司,不要提供此标志(或Int-value 1),而是提供所有其他标志(如果需要的话)或只是0: AudioManager manager = (AudioManager)this.getSystemService(Context.AUDIO_SERVICE); manager.adjustV
4 2024-02-03
编程技术问答社区