❶ 如何獲取和設置android系統鈴聲和音量大小
通過程序獲取android系統手機的鈴聲和音量。同樣,設置鈴聲和音量的方法也很簡單! 設置音量的方法也很簡單,AudioManager提供了方法: publicvoidsetStreamVolume(intstreamType,intindex,intflags)其中streamType有內置的常量,去文檔裡面就可以看到。 java代碼: AudioManager mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);//通話音量int max = mAudioManager.getStreamMaxVolume( AudioManager.STREAM_VOICE_CALL ); int current = mAudioManager.getStreamVolume( AudioManager.STREAM_VOICE_CALL ); Log.d(VIOCE_CALL, max : + max + current : + current);//系統音量max = mAudioManager.getStreamMaxVolume( AudioManager.STREAM_SYSTEM ); current = mAudioManager.getStreamVolume( AudioManager.STREAM_SYSTEM ); Log.d(SYSTEM, max : + max + current : + current);//鈴聲音量max = mAudioManager.getStreamMaxVolume( AudioManager.STREAM_RING ); current = mAudioManager.getStreamVolume( AudioManager.STREAM_RING ); Log.d(RING, max : + max + current : + current);//音樂音量max = mAudioManager.getStreamMaxVolume( AudioManager.STREAM_MUSIC ); current = mAudioManager.getStreamVolume( AudioManager.STREAM_MUSIC ); Log.d(MUSIC, max : + max + current : + current); //提示聲音音量 max = mAudioManager.getStreamMaxVolume( AudioManager.STREAM_ALARM ); current = mAudioManager.getStreamVolume( AudioManager.STREAM_ALARM ); Log.d(ALARM, max : + max + current : + current);ps: 游戲過程中只允許調整多媒體音量,而不允許調整通話音量。 setVolumeControlStream(AudioManager.STREAM_MUSIC); 長時間不動,不允許黑屏,View.setKeepScreenOn(true); 估計manifest文件中需要注冊許可權吧
❷ Android怎樣在代碼中控制媒體音量的大小
android 代碼中控制媒體音量大小,主要是使用AudioManager
這個類,來操作音量,代碼如下:
//定義AudioManager
privateAudioManagermgr;
//實例化
mgr=(AudioManager)context.getSystemService(Context.AUDIO_SERVICE);
//調高音量
mgr.adjustStreamVolume(AudioManager.STREAM_MUSIC,AudioManager.ADJUST_RAISE,AudioManager.FLAG_SHOW_UI);
//調低音量
mgr.adjustStreamVolume(AudioManager.STREAM_MUSIC,AudioManager.ADJUST_LOWER,AudioManager.FLAG_SHOW_UI);
最後分別加個按鈕安控制增加或者減少就行了
❸ android 音量調節官方版怎麼用
對於大多年輕人來說,上面這種事情不太容易出現。可是對於一些菜鳥小白,還真就保不齊來這么一次。尤其安卓機型眾多、版本眾多,就算是搞得清音量分類,也只有部分rom可以在按動音量鍵後直接快速調節。其餘大多還得「設置」—「聲音」—「音量」這么一層層的找下去,實在不符我等懶人的性格。不過,如果你接受開啟目標應用以後,再用音量鍵調節,那就請當我什麼都沒說。
❹ 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" />
❺ 安卓怎麼調整系統默認音量大小
安卓手機調整系統默認音量大小的操作方法如下,以紅米手機為例:
依次點擊:設置——聲音和振動——音量,然後將各種類型的手機音量調整一下即可。
希望對你有所幫助哦!
❻ 如何用安卓手機的工程模式來設置音量大小
工程模式調試音量步驟如下:
1、進入手機設置界面,小編以紅米3為例講解,如下圖所示
❼ Android系統手機如何調整媒體音量
請在播放媒體時按下電話側面的音量調整按鈕以調整音量。從主畫面按下菜單
>
設定
>
聲音與顯示
>
媒體音量,然後滑動到所要的音量范圍,再點擊確定。
❽ android怎麼設置當前的系統音量
通過程序獲取android系統手機的鈴聲和音量。同樣,設置鈴聲和音量的方法也很簡單!
設置音量的方法也很簡單,AudioManager提供了方法:
publicvoidsetStreamVolume(intstreamType,intindex,intflags)其中streamType有內置的常量,去文檔裡面就可以看到。
JAVA代碼:
AudioManager mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);//通話音量int max = mAudioManager.getStreamMaxVolume( AudioManager.STREAM_VOICE_CALL );
int current = mAudioManager.getStreamVolume( AudioManager.STREAM_VOICE_CALL );
Log.d(VIOCE_CALL, max : + max + current : + current);//系統音量max = mAudioManager.getStreamMaxVolume( AudioManager.STREAM_SYSTEM );
current = mAudioManager.getStreamVolume( AudioManager.STREAM_SYSTEM );
Log.d(SYSTEM, max : + max + current : + current);//鈴聲音量max = mAudioManager.getStreamMaxVolume( AudioManager.STREAM_RING );
current = mAudioManager.getStreamVolume( AudioManager.STREAM_RING );
Log.d(RING, max : + max + current : + current);//音樂音量max = mAudioManager.getStreamMaxVolume( AudioManager.STREAM_MUSIC );
current = mAudioManager.getStreamVolume( AudioManager.STREAM_MUSIC );
Log.d(MUSIC, max : + max + current : + current);
//提示聲音音量
max = mAudioManager.getStreamMaxVolume( AudioManager.STREAM_ALARM );
current = mAudioManager.getStreamVolume( AudioManager.STREAM_ALARM );
Log.d(ALARM, max : + max + current : + current);ps:
游戲過程中只允許調整多媒體音量,而不允許調整通話音量。
setVolumeControlStream(AudioManager.STREAM_MUSIC);
長時間不動,不允許黑屏,View.setKeepScreenOn(true);
估計manifest文件中需要注冊許可權吧
❾ 如何設置和獲取Android中各種音量
同樣,設置鈴聲和音量的方法也很簡單!設置音量的方法也很簡單,AudioManager提供了方法: publicvoidsetStreamVolume(intstreamType,intindex,intflags)其中streamType有內置的常量,去文檔裡面就可以看到。 JAVA代碼: AudioManager mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);//通話音量int max = mAudioManager.getStreamMaxVolume( AudioManager.STREAM_VOICE_CALL ); int current = mAudioManager.getStreamVolume( AudioManager.STREAM_VOICE_CALL ); Log.d(VIOCE_CALL, max : + max + current : + current);//系統音量max = mAudioManager.getStreamMaxVolume( AudioManager.STREAM_SYSTEM );
❿ 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) ;
}
}