gpt4 book ai didi

java - Cordova 应用程序 - 在 Android 中使用铃声音量而不是媒体

转载 作者:行者123 更新时间:2023-12-01 11:24:04 25 4
gpt4 key购买 nike

我正在使用 Cordova v4.1.2。该应用程序默认使用媒体音量,我希望它使用铃声音量来播放声音。 (就像在 WhatsApp 中一样)

我在 onCreate() 函数中使用了 setVolumeControlStream(AudioManager.STREAM_VOICE_CALL);。但它给出了一个错误。

这是我的 CordovaApp.java。 (在platforms\android\src\com\XX\XX中)

import android.os.Bundle;
import org.apache.cordova.*;

public class CordovaApp extends CordovaActivity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
super.init();
// Set by <content src="index.html" /> in config.xml
loadUrl(launchUrl);
setVolumeControlStream(AudioManager.STREAM_VOICE_CALL);
}
}

运行时显示以下错误:

enter image description here

当我从 java 文件中删除行 setVolumeControlStream(AudioManager.STREAM_VOICE_CALL); 时,没有错误,并且应用程序运行完美。关于如何解决这个问题有什么看法吗?

最佳答案

我自己修好了。如果您是 Android 极客,这确实很容易,但无论如何,以前从未问过这样的问题,所以我会将答案发布给遇到同样问题的其他人。

我更改音频流是正确的,但我在错误的文件中更改了它!哦!

这是您应该更改的地方..

\platforms\android\CordovaLib\src\org\apache\cordova\CordovaActivity.java

在第351行将其更改为setVolumeControlStream(AudioManager.STREAM_RING);

如果您想使用铃声音量。

如果您构建并按下硬件音量键,它会发生变化,并且看起来当然是使用铃声音量。但我的情况有点不同。

我正在使用 cordova Media 插件 org.apache.cordova.media 。因此,当我使用此插件播放音频时,它将流重新连接回媒体流(STREAM_MUSIC)。我又回到了零。这个想法是重新连接插件本身以使用您选择的音频流。无需复杂的技术,只需更改 2 个文件中的 2 行即可。

文件:

\platforms\android\src\org\apache\cordova\media\AndroidHandler.java

第 383 行:

setVolumeControlStream(AudioManager.STREAM_RING);

文件:

\platforms\android\src\org\apache\cordova\media\AudioPlayer.java

第 526 行:

setVolumeControlStream(AudioManager.STREAM_RING);

你就可以开始了。请记住将 STREAM_RING 替换为您所需的音频流。

关于java - Cordova 应用程序 - 在 Android 中使用铃声音量而不是媒体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30964866/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com