如何在不使用Android设备上的音量按钮控制音量的情况下使用搜索栏准确更改应用程序的音量?我在我的android上的音量键上有单独的功能,这就是为什么我想使用搜索栏来控制音量.谁能帮帮我吗?
如何从我在代码下面使用但不适用于我的tabbar项目中删除徽章.
UITabBarItem *chatbadge=[appDelegate.tabBarController.tabBar.items objectAtIndex:2];
chatbadge.badgeValue=nil;
Run Code Online (Sandbox Code Playgroud)
建议任何解决方案.
我感到很困惑...
SoundPool.play(int soundID,float leftVolume,float rightVolume,int priority,int loop,float rate)
这里的体积是0.0到1.0
我见过的教程建议将流量计算为:
AudioManager mgr = (AudioManager) getContext().getSystemService(Context.AUDIO_SERVICE);
int streamVolume = mgr.getStreamVolume(AudioManager.STREAM_MUSIC);
streamVolume = streamVolume / AudioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
mSoundPool.play(mSoundPoolMap.get(index), streamVolume, streamVolume, 1, 0, 1f);
Run Code Online (Sandbox Code Playgroud)
这是有道理的.
我假设此卷将覆盖用户在手机中设置的全局媒体卷,我可以通过更改soundPool中的流量来独立更改我的应用的音量.
但实际上它就像乘数一样 - 如果我在soundpool中设置0.5音量,实际音量将总是全局音量的一半.很容易重现:
有人可以解释为什么它会这样吗?传递给SoundPool.play方法的音量真的是全球音量的乘数吗?
我不认为我真的曾经嵌套超过约三个层次值得布局(中RelativeLayout,LinearLayout,FrameLayout在Android设备).我不是在考虑列表项,它们也使用自定义布局,ListView但只是活动的正常布局.
虽然如此,我正在与另一位开发人员聊聊我们正在讨论的某个布局的嵌套布局,他似乎认为即使是一些嵌套布局也会降低性能.我认为有一些事实,但它不能那么多.
有没有人有更专业的方法呢?有什么输入?意见?
谢谢.
对于那些在Google上找到的人的更新:下面的第一个答案是一个很好的资源.它看起来很多,人们似乎跳过这样的答案,但请检查出来.非常有价值.
我已经尝试使用以下代码在我的应用程序中设置媒体播放器的音频流,但是当我这样做时,我在模拟器中听不到声音.如果我没有为播放器设置流,则音频播放正常.我确定我使用这个错误但不能锻炼如何,任何帮助?
MediaPlayer player = MediaPlayer.create(getApplicationContext(), R.raw.test_audio);
AudioManager audioManager = (AudioManager) getApplicationContext().getSystemService(Context.AUDIO_SERVICE);
audioManager.getStreamVolume(AudioManager.STREAM_ALARM);
audioManager.setStreamVolume(AudioManager.STREAM_ALARM, audioManager.getStreamMaxVolume(AudioManager.STREAM_ALARM), AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE);
player.setAudioStreamType(AudioManager.STREAM_ALARM);
player.start();
Run Code Online (Sandbox Code Playgroud)
注意:我已经为我的清单添加了MODIFY_AUDIO_SETTINGS权限.
谢谢!
本AudioManager类有一个方法,abandonAudioFocus()而另一种方法requestAudioFocus().我想知道什么是音频焦点?如果AudioManager对象获得音频焦点或丢失音频焦点会发生什么?
谢谢!
嗨,我是新来的.我的自学项目是一个播放音频新闻流的小应用程序.为了有效,应用程序确实需要中断任何当前播放的媒体播放器(例如:Last FM,Imeem,音乐播放器,Spotify等).
我不知道将播放什么或将播放什么应用程序,但我想让他们都暂停,直到我完成.听起来相当大胆,我知道,但它必须是可能的,因为当有来电时,基本上就会发生这种情况.
我可以向所有要求他们暂停一下的音频播放器发送消息吗?我可以欺骗来电,只是花费时间吗?
谢谢.
我正在尝试使用以下代码行将呼叫的振铃模式更改为RINGER_MODE_SILENT.
AudioManager am = (AudioManager) this.getSystemService(Context.AUDIO_SERVICE);
am.setRingerMode(AudioManager.RINGER_MODE_SILENT);
Run Code Online (Sandbox Code Playgroud)
虽然RINGER_MODE_SILENT的文档说它也应该停止振动,但手机停止响铃会继续振动.
我正在使用SDK 1.6
更新:
由于我还没有找到解决方案,我尝试手动停用振动设置.
am.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER, AudioManager.VIBRATE_SETTING_OFF );
Run Code Online (Sandbox Code Playgroud)
但这也不能防止电话形式在呼叫进入时振动.
有任何想法吗?
更新2:
今天我试图通过振动物体取消振动来解决问题.
Vibrator vib = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
vib.cancel();
Run Code Online (Sandbox Code Playgroud)
再次,没有成功.现在我已经没有想法,并且问自己是否有可能完全停止振动.
更新3:
当我重新读取Vibrator类的文档时,我发现了另一个有趣的事实.文件说:
"如果你的过程退出,你开始的任何振动都会停止."
这听起来好像振动与启动它的过程相关联,并且无法从另一个过程访问.
我正在尝试使用相同的媒体播放器,但更改数据源.这是我正在尝试做的事情:
private MediaPlayer mMediaPlayer;
public void pickFile1() {
initMediaPlayer("myfile1.mp3");
}
public void pickFile2() {
initMediaPlayer("myfile2.mp3");
}
private void initMediaPlayer(String mediafile) {
// Setup media player, but don't start until user clicks button!
try {
if (mMediaPlayer == null) {
mMediaPlayer = new MediaPlayer();
} else {
mMediaPlayer.reset(); // so can change data source etc.
}
mMediaPlayer.setOnErrorListener(this);
AssetFileDescriptor afd = getAssets().openFd(mediafile);
mMediaPlayer.setDataSource(afd.getFileDescriptor());
}
catch (IllegalStateException e) {
Log.d(TAG, "IllegalStateException: " + e.getMessage());
}
catch (IOException e) {
Log.d(TAG, "IOException: " + …Run Code Online (Sandbox Code Playgroud)