‘壹’ android开发 音乐播放器 控制声音的方法有几种
/**
* Android 系统声音控制对象
*/
AudioManager audioManager;
//根据AudioManager 对象获得系统声音的服务
audioManager = (AudioManager)getSystemService(AUDIO_SERVICE);
int maxVolume = audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
int currentVolume = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, progress, MaxVolume);
‘贰’ 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);
‘肆’ Android系统手机如何调整媒体音量
请在播放媒体时按下电话侧面的音量调整按钮以调整音量。从主画面按下菜单
>
设定
>
声音与显示
>
媒体音量,然后滑动到所要的音量范围,再点击确定。
‘伍’ 安卓手机按键声音怎么设置
若使用的是vivo手机,可参考设置输入法按键振动方法:
网络输入法定制版:进入设置--系统管理--输入法--网络输入法定制版--键盘界面设置--按键反馈,根据您的需要调整振动大小即可;
搜狗输入法定制版/vivo输入版:进入设置--系统管理/更多设置--输入法--搜狗输入法定制版/vivo输入法--键盘设置--按键反馈,根据您的需要调整振动大小即可。
‘陆’ android声音处理问题
其实,AudioRecord和AudioTrack类的使用虽然比较复杂,但是可以工作,我们不仅可以很好地使用了这两个类,而且还通过套接字 (Socket)实现了音频数据的网络传输,做到了一端使用AudioRecord获取音频流然后通过套接字传输出去,而另一端通过套接字接收后使用 AudioTrack类播放。
下面是我们对AudioRecord和AudioTrack类在使用方面的经验总结:
(1)创建AudioRecord和AudioTrack类对象:创建这两个类的对象比较复杂,通过对文档的反复和仔细理解,并通过多次失败的尝试,并在 北理工的某个Android大牛的网上的文章启发下,我们也最终成功地创建了这两个类的对象。创建AudioRecord和AudioTrack类对象的 代码如下:
AudioRecord类:
m_in_buf_size =AudioRecord.getMinBufferSize(8000,
AudioFormat.CHANNEL_CONFIGURATION_
‘柒’ 如何播放android通知声音
你现在可以通过在构建通知时包含声音而不是单独调用声音来完成此操作:
//Define Notification Manager
NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
//Define sound URI
Uri soundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(getApplicationContext())
.setSmallIcon(icon)
.setContentTitle(title)
.setContentText(message)
.setSound(soundUri); //This sets the sound to play
//Display notification
notificationManager.notify(0, mBuilder.build());
‘捌’ android怎么调用系统声音
Android中手机声音调节步骤:
a、通过系统服务获得声音管理器:
AudioManager audioManager = (AudioManager)getSystemService(Service.AUDIO_SERVICE);
b、根据实际需要调用适当的方法:(常用方法)
audioManager.adjustStreamVolume(int streamType, int direction, int flags);
streamType:声音类型,可取的为STREAM_VOICE_CALL(打电话时的声音), STREAM_SYSTEM(Android系统声音), STREAM_RING(电话铃响), STREAM_MUSIC(音乐声音)or STREAM_ALARM(警告声音)。
direction:调整音量的方向,可取为ADJUST_LOWER(调低音量), ADJUST_RAISE(调高音量), or ADJUST_SAME(保持先前音量)。
flags:可选标志位(如要显示出音量调节UI,使用如下flag:AudioManager.FLAG_SHOW_UI)。
audioManager.setStreamMute(int streamType, boolean state);设置指定声音类型(streamType)是否为静音。如果state为true,则设置为静音;否则,不设置为静音。
audioManager.setRingerMode(int ringerMode);
设置铃音模式,可取值为RINGER_MODE_NORMAL(铃音正常模式), RINGER_MODE_SILENT(铃音静音模式), or RINGER_MODE_VIBRATE(铃音震动模式,即铃音为静音,启动震动)。
audioManager.setMode(int mode);
设置声音模式,可取值为MODE_NORMAL(正常模式,即在没有铃音与电话的情况), MODE_RINGTONE(铃响模式), MODE_IN_CALL(接通电话模式)or MODE_IN_COMMUNICATION(通话模式)。
注意:声音的调节是没有权限要求的。
‘玖’ 如何获取和设置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的声音频率是多少
实现思路:
1. 通过AudioRecord类读取Mic传入的数据
2. 对读取的数据进行快速傅立叶变换
3. 计算出进过计算后的复数的模即为需要的频率
第一步很好实现,new 一个AudioRecord即可实现读取mic的输入,简略版代码如下:
AudioRecordaudioRecord=newAudioRecord(MediaRecorder.AudioSource.MIC,
sampleRate,AudioFormat.CHANNEL_CONFIGURATION_MONO,
AudioFormat.ENCODING_PCM_16BIT,sampleRate*6);
audioRecord.startRecording();
byte[]bufferRead=newbyte[READ_BUFFERSIZE];
while(audioRecord.read(bufferRead,0,READ_BUFFERSIZE)>0){
currentFrequency=processSampleData(bufferRead,SAMPLE_RATE);
}
这里的sampleRate取的是44100,stackoverflow上说AudioRecord的参数根据不同的机器可能不同,这一点通过遍历可能的参数新建AudioRecord类,具体可以参见stackoverflow上的这个问答。
bufferRead为读取数据存储的容器。
currentFrequency即为通过快速傅立叶变换计算出的声音频率。
processSampleDate为调用的本地方法,因为已经有人用C实现了快速傅立叶变换,通过传入参数即可计算出声音的频率。
当然,在使用mic读取数据之前需要加上相应的权限。
关于android如何通过NDK编译C语言的教程网上也有很多,在linux下很方便,在windows上就比较麻烦了,需要通过安装Cygwin模拟linux的环境,调用GCC编译文件。
这篇博客的教程讲得还是很详细的,建议没有用过NDK的可以参考一下。
这样就能计算出实时的声音频率了。