android音量条
㈠ Android开发中怎么隐藏音量控制条
//恢复音量到默认的30
AudioManager mAudioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
mAudioManager.setStreamVolume(AudioManager.STREAM_SYSTEM, 30, AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE);
应该是最后一个参数,就是比如如果传进去的是AudioManager.FLAG_SHOW_UI就是会显示音量条的,FLAG_REMOVE_SOUND_AND_VIBRATE就是不显示的,这个是我在电视上做的把系统声音设置成30的,不知道你的平台一样不一样,试试吧
㈡ android setstreamvolume为什么出现音量调节条
用setStreamVolumeIndex来调节音量,其实,最终是通过AudioPolicyService的对应函数... Eclipse导入android项目后有叹号
㈢ android 按音量键系统音量条弹不出来
看看最近下载了那些软件先御载看看或者恢复出厂如果还是不行建议找人去修
㈣ Android系统手机如何调整媒体音量
请在播放媒体时按下电话侧面的音量调整按钮以调整音量。从主画面按下菜单
>
设定
>
声音与显示
>
媒体音量,然后滑动到所要的音量范围,再点击确定。
㈤ android系统音量为什么要+5/10
调整音量方法有两种,一种是渐进式,即像手动按音量键一样,一步一步增加或减少,另一种是直接设置音量值.
1、渐进式
public void adjustStreamVolume (int streamType, int direction, int flags)
am.adjustStreamVolume (AudioManager.STREAM_MUSIC, AudioManager.ADJUST_RAISE, AudioManager.FLAG_SHOW_UI);
解释一下三个参数
第一个streamType是需要调整音量的类型,这里设的是媒体音量,可以是:
STREAM_ALARM 警报
STREAM_MUSIC 音乐回放即媒体音量
STREAM_NOTIFICATION 窗口顶部状态栏Notification,
STREAM_RING 铃声
STREAM_SYSTEM 系统
STREAM_VOICE_CALL 通话
STREAM_DTMF 双音多频,不是很明白什么东西
第二个direction,是调整的方向,增加或减少,可以是:
ADJUST_LOWER 降低音量
ADJUST_RAISE 升高音量
ADJUST_SAME 保持不变,这个主要用于向用户展示当前的音量
第三个flags是一些附加参数,只介绍两个常用的
FLAG_PLAY_SOUND 调整音量时播放声音
FLAG_SHOW_UI 调整时显示音量条,就是按音量键出现的那个
2、直接设置音量值的方法:
public void setStreamVolume (int streamType, int index, int flags)
am.setStreamVolume(AudioManager.STREAM_MUSIC, am.getStreamMaxVolume(AudioManager.STREAM_MUSIC), AudioManager.FLAG_PLAY_SOUND);
am.getStreamMaxVolume(AudioManager.STREAM_VOICE_CALL);//得到听筒模式的最大值
am.getStreamVolume(AudioManager.STREAM_VOICE_CALL);//得到听筒模式的当前值
第一个和第三个参数与上面的相同
第二个参数是一个音量的int值,getStreamMaxVolume(int streamType)得到的是该类型音量的最大值,可以根据这个值计算你需要的音量,我这里直接调到最大.
最后我的代码:
package com.lp;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import Android.app.Activity;
import Android.content.Context;
import Android.media.AudioFormat;
import Android.media.AudioManager;
import Android.media.AudioTrack;
import Android.os.Bundle;
import Android.view.View;
import Android.view.View.OnClickListener;
import Android.widget.Button;
import Android.widget.SeekBar;
/**
* AudioTrack 播放音频 如wav格式
* 并允许调节音量
* @author Administrator
*
*/
public class MainActivity5 extends Activity {
private Button play;
private Button stop;
private SeekBar soundValue;
private AudioTrack at;
private AudioManager am;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_sk);
am = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
play = (Button)findViewById(R.id.main_sk_play);
stop = (Button)findViewById(R.id.main_sk_stop);
soundValue = (SeekBar)findViewById(R.id.skbVolume);
setVolumeControlStream(AudioManager.STREAM_VOICE_CALL);
play.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if(am.isSpeakerphoneOn()){
am.setSpeakerphoneOn(false);
}
//setVolumeControlStream(AudioManager.STREAM_VOICE_CALL);
am.setMode(AudioManager.MODE_IN_CALL);
System.out.println(am.getStreamMaxVolume(AudioManager.STREAM_VOICE_CALL));
System.out.println("&&&&&&&&&&&&&");
System.out.println(am.getStreamVolume(AudioManager.STREAM_VOICE_CALL));
//am.setStreamVolume(streamType, index, flags)
int bufferSizeInBytes = AudioTrack.getMinBufferSize(44100, AudioFormat.CHANNEL_OUT_MONO, AudioFormat.ENCODING_PCM_16BIT);
if(at==null){
at = new AudioTrack(AudioManager.STREAM_VOICE_CALL, 44100, AudioFormat.CHANNEL_OUT_MONO, AudioFormat.ENCODING_PCM_16BIT, bufferSizeInBytes, AudioTrack.MODE_STREAM);
System.out.println("22222");
//at.setStereoVolume(100f, 100f);
at.setStereoVolume(0.7f, 0.7f);//设置当前音量大小
new AudioTrackThread().start();
}else{
if(at.getPlayState()==AudioTrack.PLAYSTATE_PLAYING){
System.out.println("111111111");
}else{
System.out.println("33333");
at = new AudioTrack(AudioManager.STREAM_VOICE_CALL, 44100, AudioFormat.CHANNEL_OUT_MONO, AudioFormat.ENCODING_PCM_16BIT, bufferSizeInBytes, AudioTrack.MODE_STREAM);
new AudioTrackThread().start();
}
}
}
});
stop.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if(at.getPlayState()==AudioTrack.PLAYSTATE_PLAYING){
try{
at.stop();
}catch (IllegalStateException e)
{
e.printStackTrace();
}
at.release();
am.setMode(AudioManager.MODE_NORMAL);
}
}
});
// soundValue.setMax(100);//音量调节的极限
// soundValue.setProgress(70);//设置seekbar的位置值
soundValue.setMax(am.getStreamMaxVolume(AudioManager.STREAM_VOICE_CALL));
soundValue.setProgress(am.getStreamVolume(AudioManager.STREAM_VOICE_CALL));
soundValue.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
// float vol=(float)(seekBar.getProgress())/(float)(seekBar.getMax());
// System.out.println(vol);
// at.setStereoVolume(vol, vol);//设置音量
am.setStreamVolume(AudioManager.STREAM_VOICE_CALL, seekBar.getProgress(), AudioManager.FLAG_PLAY_SOUND);
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
@Override
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
// TODO Auto-generated method stub
}
});
}
class AudioTrackThread extends Thread{
@Override
public void run() {
byte[] out_bytes = new byte[44100];
InputStream is = getResources().openRawResource(R.raw.start);
int length ;
try{
at.play();
}catch (IllegalStateException e)
{
e.printStackTrace();
}
try {
while((length = is.read(out_bytes))!=-1){
//System.out.println(length);
at.write(out_bytes, 0, length);
}
} catch (IOException e) {
e.printStackTrace();
}
if(at.getPlayState()==AudioTrack.PLAYSTATE_PLAYING){
try{
at.stop();
}catch (IllegalStateException e)
{
e.printStackTrace();
}
at.release();
am.setMode(AudioManager.MODE_NORMAL);
}
}
}
}
当然 权限
<uses-permission Android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission Android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission Android:name="android.permission.RECORD_AUDIO" />
㈥ android 4.0.3声音调节大小的栏怎么调出来,我是平板电脑的
android系统有一个 "设置" 应用, 可以从应用菜单内找到,也可以直接从下拉通知栏日期后面的那个按钮点击进入.
进入设置后按如下顺序选择:
设置 -> 情景模式 -> 标准 -> 铃音音量
即可设置各种音量.
注意各个厂商都有可能对原生的android系统进行修改的,不同的产品在系统上会略有不同.
㈦ android 怎么自定义音量条
public class SoundSeekBar extends View{
/**
* 当前值
*/
private int percentage=0;
/**
* 左右间距
*/
private int padding=10;
/**
* 画笔
*/
Paint myPaint=new Paint();
/**
* 当前值监听接口
*/
private OnPercentageChangeListener myOnPercentageChangeListener;
public int getPercentage() {
return percentage;
}
public void setPercentage(int percentage) {
this.percentage = percentage;
}
public int getPadding() {
return padding;
}
public void setPadding(int padding) {
this.padding = padding;
}
public SoundSeekBar(Context context) {
super(context);
}
public SoundSeekBar(Context context, AttributeSet attrs) {
super(context, attrs);
}
public SoundSeekBar(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
public void setOnPercentageChangeListener(OnPercentageChangeListener onPercentageChangeListener)
{
this.myOnPercentageChangeListener=onPercentageChangeListener;
};
@Override
protected void onDraw(Canvas canvas) {
myPaint.setColor(0xffdcdcdc);
myPaint.setStyle(Paint.Style.FILL);
Path backPath=new Path();
// 去锯齿
myPaint.setAntiAlias(true);
backPath.moveTo(padding, getHeight());
backPath.lineTo(getWidth()-padding, 0);
backPath.lineTo(getWidth()-padding, getHeight());
backPath.close();
canvas.drawPath(backPath, myPaint);
Path percentagePath = new Path();
percentagePath.moveTo(0, getHeight());
percentagePath.lineTo(padding+(getWidth()-2*padding) * percentage / 100, getHeight());
percentagePath.lineTo(padding+(getWidth()-2*padding) * percentage / 100, getHeight()*(float)(1-(percentage/100.0)));
percentagePath.close();
myPaint.setColor(0xffff0000);
canvas.drawPath(percentagePath,myPaint);
super.onDraw(canvas);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
if(event.getAction()==MotionEvent.ACTION_DOWN ||event.getAction()==MotionEvent.ACTION_MOVE)
{
int per=(int)(((event.getX()-padding-getX())/(float)(getWidth()-2*padding))*100);
if (percentage != per && per >= 0 && per <= 100) {
percentage = per;
postInvalidate();
} else if(percentage>100)
{
percentage = 100;
postInvalidate();
}else if(percentage<0)
{
percentage=0;
postInvalidate();
}
if(myOnPercentageChangeListener!=null)
{
myOnPercentageChangeListener.onPercentagerChange(percentage);
}
}
return true;
}
public interface OnPercentageChangeListener
{
public void onPercentagerChange(int percentage) ;
}
}
㈧ 安卓手机声音太小怎么调大
如果您使用的是华为手机,可以按照以下方法操作:
进入设置 > 声音和振动,拖动音量条,即可分别调整媒体、铃声、闹钟、通话和智慧语音的音量大小。
㈨ android开发中如何实现播放声音时根据声音大小做一个动态能量条
音量变化是比较频繁的,通常是低于50毫秒。
所以你取得的音量大小是一条密集的点组成的曲线,要动态的展示这些密集的点,有两种不同的实现方式,效果也不一致。
把这些点分成不同的区间。比如5个区间,每个区间对应一张图片(也可以是动态的图片AnimationDrawable),取得音量后判断是哪个区间,设置对应的图片。打个比方,如果是用格数来表示,就有五张图片表示1-5格,音量最大值可以通过mediaRecorder.getMaxAmplitude()获得。分成五个区间,每个区间显示对应格数的图片。当然,这个图片也可以是类似水波在荡漾的动态图片,用AnimationDrawable来播放。
平滑的处理这些点。把上一次的位置与这一次的位置做一个动画,如果采集频率为50毫秒,动画的ration就是50ms。比如是做一个圆圈,随着音量大小变化,那么可以参照如下的属性动画:
PropertyValuesHolder pvhX = PropertyValuesHolder.ofFloat("scaleX", lastScale, scale);
PropertyValuesHolder pvhY = PropertyValuesHolder.ofFloat("scaleY", lastScale, scale);
valumeAnimator = ObjectAnimator.ofPropertyValuesHolder(speakVolumeImageV, pvhX, pvhY);
valumeAnimator.setDuration(MIN_TIME).start();
通过放大和缩小speakVolumeImageV来展示当前音量。其中scale是此次的缩放比,lastScale是上次的缩放比。缩放比初始为1.0f,如果最大只能放大到speakVolumeImageV的两倍大,那么可以这样计算
Float scale = 1.0f;
if (volume == 0) {
scale = 1.0f;
} else {
scale = 1.0f + (volume / MAX_VOLUME * 1.0f);
}
㈩ 安卓手机音量调节怎么设置
在手机主页中找到“设置”选项;
在“设置”中找到“音量调节”选项;
进入选项后即可调整音量。