我使用的是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);
}
}
在运行时显示以下错误:
从java文件中删除行setVolumeControlStream(AudioManager.STREAM_VOICE_CALL);
时没有错误,应用程序运行完美。关于如何解决这个问题的任何看法?
答案 0 :(得分:1)
我自己修好了。如果你是一个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替换为您想要的音频流。