草庐IT

android - 如何在 Android O 中动态更改通知声音

最近我使用通知channel来支持androidO。但问题是我无法动态更改声音Uri。我们的应用程序具有通知声音设置,用户可以根据需要更改应用程序通知声音。但如您所知,Android现在不允许开发人员在用户重新安装应用程序之前更新通知channel。在那里我考虑了几种可能的解决方案,但看起来不太好。使用铃声管理器播放铃声而不是setSound。但是当用户在应用程序设置中禁用通知时,铃声仍然不会停止播放。(这将是糟糕的用户体验)删除通知channel并在用户更改铃声时创建新channel。但这看起来也很糟糕,因为在应用程序设置中谷歌显示了删除channel信息的历史记录。(实际上没有必要

android - 在 Android 中检测声音或语音的开头

我想听麦克风(我猜是使用AudioRecord)并在一个人开始说话的那一刻执行一些操作。我知道我可以使用AudioRecord缓冲音频,但我该如何分析它? 最佳答案 嗯,困难的部分是让手机识别它的声音。您可以将语音识别系统设置为输入,而不是麦克风,后者可能可以做到这一点。不过我不这么认为,因为(我昨天确实读到了所有相关内容)电话实际上并没有进行识别,它只是打开了一个实时流(比如电话)到Google服务器,由他们进行识别。此外,目前我所找到的信息表明Android不支持分析来自麦克风的实时音频。所有这些看似“实时”的其他应用程序实际上

android - getMaxAmplitude 方法返回的幅度单位是什么?

有谁知道方法的返回单位是什么:MediaRecorder.getMaxAmplitude();AndroidMediaRecorderAPI文档仅表示此方法返回自上次调用以来采样点的最大绝对幅度,但未指定单位。是帕斯卡、毫帕斯卡还是其他单位? 最佳答案 我自己和一些大学经过一番详细的搜索后得出了这个结论。据我所知,这个问题的答案还不完整,因此,我正在写下自己对这个问题的答案。MediaRecorder.getMaxAmplitude()函数返回无符号16位整数值(0-32767)。这些值可能是通过在-32768…+32767上使用a

Android Superpowered SDK 同时录制和回放

我的目标是播放本地文件,同时以低延迟录制设备的麦克风输入。我来到Superpowered库,因为从文档中它提供了低延迟功能。我使用SuperpoweredAdvancedAudioPlayer和SuperpoweredAndroidAudioIO创建了播放器,播放效果很好。SuperpoweredAndroidAudioIO具有带有参数booleanenableInput,booleanenableOutput的构造函数。目前我正在使用enableInput==false和enableOutput==true。当我将这些参数设置为true时-没有任何效果。请问是否可以同时录制文件和播放

android - 自定义语音识别对话框

我想知道是否有任何方法可以更改和自定义我的应用程序中语音识别对话框的样式?即:更改GoogleLogo或文本。我使用这个代码,它完整吗?publicvoidonReadyForSpeech(Bundleparams){proccessTXT.setText("Speaknow!");}@OverridepublicvoidonBeginningOfSpeech(){}@OverridepublicvoidonRmsChanged(floatrmsdB){}@OverridepublicvoidonBufferReceived(byte[]buffer){}@Overridepublic

java - 耳机插孔监听器 Android

有谁知道我如何检测设备上的耳机插孔是否在Android上拔下?我有一个音乐播放器,我需要在拔下耳机时暂停音乐。我发现最接近的是使用AudioManager。这是正确的方向吗? 最佳答案 这就是我最终做的:privateclassNoisyAudioStreamReceiverextendsBroadcastReceiver{@OverridepublicvoidonReceive(Contextcontext,Intentintent){if(AudioManager.ACTION_AUDIO_BECOMING_NOISY.equa

android - 在 Android 中将音量设置为最大

这个问题在这里已经有了答案:Android:howtoplaymusicatmaximumpossiblevolume?(5个答案)关闭9年前。在我的应用程序中,我尝试将播放音频剪辑时的音量设置为最大级别,但它似乎没有任何影响。我必须手动将音量调到最大。这是我的代码:MediaPlayermp=newMediaPlayer();mp.setVolume(1,1);

android - 如何使用 ffmpeg 改变音频节奏和音调个性?

我已经设法在我的android项目中使用ffmpeg和AudioTrack类播放音频文件。我可以使用AudioTrack类的setRate方法更改音频的速度。但它也改变了音频的音调,我只想改变音频的速度,但我在网上找不到解决方案。任何人都可以帮助我解决这个问题,因为没有对此的支持。 最佳答案 您可以使用atempofilter在ffmpeg1.0及更高版本中:ffmpeg-iinput.wav-f:aatempo=1.25output.wavatempo只接受0.5到2.0之间的值,但您可以通过链接多个过滤器来绕过限制:ffmpeg

android - 无法访问录音机

我正在尝试通过小型录音来查找服务的声压级,但Android不允许我访问硬件。我在Logcat中收到以下错误:错误来自以下代码:AudioRecordrecordInstance=null;//We'reimportant...android.os.Process.setThreadPriority(android.os.Process.THREAD_PRIORITY_URGENT_AUDIO);shortbufferSize=4096;//2048;recordInstance=newAudioRecord(MediaRecorder.AudioSource.MIC,this//lin

Android:如何使用声音资源包含通知声音?

查看开发人员文档,我看到howtousethedefaultsoundandhowtouseaUri,但我看不到如何使用资源。如何使用我的res/raw文件夹中的其中一种声音?例如MP3或WAV文件? 最佳答案 Uripath=Uri.parse("android.resource://[package]/[resid]");例子:Uripath=Uri.parse("android.resource://com.mypackage/"+R.raw.mysound_1); 关于Andro