Sco*_*son 20 android android-mediaplayer
我正在开发一个既可以录制音频文件的应用程序,也可以选择在录制完文件后播放该文件.UI具有EQ分量,该EQ分量相对于记录的当前幅度动画化.我已经通过该MediaRecorder.getMaxAmplitude()方法运行动画,但无法找到任何方法来使用MediaPlayer.我知道它必须是可能的,因为默认情况下有音乐可视化动态壁纸执行此功能,但我无法看到它在通过AOSP梳理时提取信息.有人知道如何使这项工作?
Dee*_*rma 26
您可以在Audiomanager类的帮助下获得当前的媒体播放器数量.代码如下: -
AudioManager am = (AudioManager) getSystemService(AUDIO_SERVICE);
int volume_level= am.getStreamVolume(AudioManager.STREAM_MUSIC);
Run Code Online (Sandbox Code Playgroud)
同样,如果你想设置媒体播放器的默认音量.你可以这样做: -
am.setStreamVolume(
AudioManager.STREAM_MUSIC,
volume_level,
0);
Run Code Online (Sandbox Code Playgroud)
这就是全部..快乐编码:)
Ohi*_*ovr 10
你很幸运.有一个叫做Visualizer的类可以做你想要的.
import android.app.Activity;
import android.media.audiofx.Visualizer;
import android.os.Bundle;
import android.util.Log;
public class MainActivity extends Activity {
private Visualizer audioOutput = null;
public float intensity = 0; //intensity is a value between 0 and 1. The intensity in this case is the system output volume
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
createVisualizer();
}
private void createVisualizer(){
int rate = Visualizer.getMaxCaptureRate();
audioOutput = new Visualizer(0); // get output audio stream
audioOutput.setDataCaptureListener(new Visualizer.OnDataCaptureListener() {
@Override
public void onWaveFormDataCapture(Visualizer visualizer, byte[] waveform, int samplingRate) {
intensity = ((float) waveform[0] + 128f) / 256;
Log.d("vis", String.valueOf(intensity));
}
@Override
public void onFftDataCapture(Visualizer visualizer, byte[] fft, int samplingRate) {
}
},rate , true, false); // waveform not freq data
Log.d("rate", String.valueOf(Visualizer.getMaxCaptureRate()));
audioOutput.setEnabled(true);
}
}
Run Code Online (Sandbox Code Playgroud)
你需要这些权限:
<uses-permission android:name="android.permission.RECORD_AUDIO"></uses-permission>
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"></uses-permission>
Run Code Online (Sandbox Code Playgroud)
小智 9
我想你必须使用AudioManager.正如API所述,它可以用于音量控制:
AudioManager提供对音量和振铃模式控制的访问.
使用Context.getSystemService(Context.AUDIO_SERVICE)获取此类的实例.
然后我认为这种方法很有用.
如下:
audioManager = (AudioManager) activity.getSystemService(Context.AUDIO_SERVICE);
int volumeLevel = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
int maxVolumeLevel = audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
int volumePercent = (int) (((float) volumeLevel / maxVolumeLevel) * 100);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
40359 次 |
| 最近记录: |