Làm thế nào để tắt MediaPlayer trong androidLàm thế nào để tắt MediaPlayer trong android
Trả lời
Mã này làm việc cho tôi,
MediaPlayer mp = MediaPlayer.create(context, R.raw.sound_file_1);
mp.start();
cho Mute
mp.setVolume(0,0);
& Unmute hoặc đầy đủ khối lượng
mp.setVolume(1,1);
Bạn có thể muốn làm mờ/thay đổi âm thanh thay vì đặt ngay lập tức thành âm lượng đầy đủ (1,0f) hoặc không (0,0f).
Đó là một chút khó khăn, bởi vì bạn cần một công việc async để giữ ứng dụng của bạn đáp ứng:
mpMain là dụ MediaPlayer của tôi để chơi nhạc nền lặp. Tôi cũng quan tâm đến nó trong OnPause() và OnResume().
Phương thức playBackgroundMusic được sử dụng để bật nhạc, fadeOutBackgroundMusic tắt nhạc, nhưng bằng cách giảm âm lượng trong 0,5 giây (10 * 50, xem trong khi và Thread.sleep).
Khối lượng cơ sở của tôi là 0,8f, bạn có thể muốn đặt thông số đó thành tác vụ không đồng bộ hoặc sử dụng biến toàn cầu tĩnh.
public void playBackgroundMusic(Boolean isOn){
if(isOn){
// prevent conflics with async fade-out task
if(mtask_fadeout_music!=null){
mtask_fadeout_music.cancel(true);
mtask_fadeout_music=null;
}
if(mpMain==null){
mpMain = MediaPlayer.create(this, R.raw.zin___piano_2_140bpm_32158);
mpMain.setLooping(true);
mpMain.setVolume(0.8f,0.8f);
mpMain.start();
}
}
else{
if(mtask_fadeout_music==null){
fadeOutBackgroundMusic();
}
}
}
public void fadeOutBackgroundMusic(){
mtask_fadeout_music = (FadeOutMusic)new FadeOutMusic().execute();
}
//
// background processing ... fade out music stream
//
public class FadeOutMusic extends AsyncTask<String,Integer,String> {
@Override
protected String doInBackground(String... args) {
float level = 0.8f;
int i = 1;
while(i<50){
i++;
if(mpMain != null){
level=level*0.9f;
mpMain.setVolume(level, level);
}
try {
Thread.sleep(10);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
return "dummy";
}
@Override
protected void onPostExecute(String dummy) {
if(mpMain != null){
mpMain.setVolume(0,0);
mpMain.release();
mpMain = null;
}
if(mtask_fadeout_music!=null){
mtask_fadeout_music = null;
}
}
@Override
public void onCancelled() {
if(mpMain != null){
mpMain.setVolume(0,0);
mpMain.release();
mpMain = null;
}
if(mtask_fadeout_music!=null){
mtask_fadeout_music = null;
}
}
}
AudioManager mAudioManager = (AudioManager) this.getSystemService(Context.AUDIO_SERVICE);
int current_volume =mAudioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
//If you want to player is mute ,then set_volume variable is zero.Otherwise you may supply some value.
int set_volume=0;
mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC,set_volume, 0);
Hãy thử này ...
AudioManager manager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
manager.setStreamMute(AudioManager.STREAM_MUSIC, true);
Nó sẽ tắt Toàn bộ khối lượng phương tiện truyền thông để tắt
Hãy thử điều này
AudioManager am = getSystemService(Context.AUDIO_SERVICE);
// Request audio focus.
am.requestAudioFocus(listener, AudioManager.STREAM_MUSIC,AudioManager.AUDIOFOCUS_GAIN);
http://developer.android.com/training/managing-audio/audio-focus.html
AudioManger.setStreamMute
không được dùng nữa. sử dụng mã thay thế bên dưới.
// Change the stream to your stream of choice.
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M){
am.adjustStreamVolume(AudioManager.STREAM_MUSIC, AudioManager.ADJUST_MUTE, 0);
} else {
am.setStreamMute(AudioManager.STREAM_MUSIC, true);
}
- 1. Android MediaPlayer setNextMediaPlayer() thay thế
- 2. Làm thế nào để tiếp tục mediaplayer?
- 3. Làm thế nào để đính kèm MediaPlayer với SurfaceView trong Android?
- 4. Truyền tới Android MediaPlayer
- 5. Làm thế nào để vô hiệu hóa Android MediaPlayer thông điệp debug
- 6. Nhận mediaPlayer của videoXem trong Android
- 7. Mã lỗi MediaPlayer của Android?
- 8. Android MediaPlayer - cách chơi trong STREAM_ALARM?
- 9. Android MediaPlayer bị kẹt trong chuẩn bị()
- 10. Làm cách nào để có được âm lượng/biên độ hiện tại trong Android MediaPlayer?
- 11. Cách phát hành Android MediaPlayer
- 12. Làm thế nào để tắt com.sun.net.httpserver.HttpServer?
- 13. Cách phát mp3 + g trên android mediaplayer
- 14. Làm thế nào để tắt/bật mạng, chuyển sang Wifi trong trình giả lập Android?
- 15. Làm thế nào để tắt định vị con trỏ và chọn văn bản trong EditText? (Android)
- 16. Làm thế nào để gửi sms khi tắt điện thoại trong Android?
- 17. Honeycomb Android 3.0: Làm thế nào để bật/tắt các mục menu trong thanh tác vụ?
- 18. Làm thế nào để bạn tắt setDragImage
- 19. Điều khiển dịch vụ Android MediaPlayer
- 20. Làm thế nào để lọc kết nối wifi trong Android?
- 21. Android MediaPlayer/VideoView w/Phụ đề (SRT)
- 22. Làm cách nào để triển khai trình phát âm thanh cho Android bằng MediaPlayer và MediaController?
- 23. Android MediaPlayer với AudioEffect: Bắt Lỗi (-22,0)
- 24. Làm thế nào để tắt tự động tải trong jqGrid?
- 25. Làm thế nào để tắt thanh cuộn trong ScrolledForm?
- 26. Làm thế nào để tắt phiên bản trong CouchDB?
- 27. Làm thế nào để tắt xdebug trong tập lệnh?
- 28. Làm thế nào để sử dụng đu trong móc tắt?
- 29. Làm thế nào để tắt thanh cuộn ngang trong FlowLayoutPanel?
- 30. Làm thế nào để tắt CalendarView trong một DatePicker?
hai chữ số có nghĩa là kênh L và R, do đó, chữ số phải là mp.setvolume (1,1); –
@DheeB cảm ơn, tôi đã cập nhật câu trả lời của mình –
Tôi biết đây là một thời gian dài sau, nhưng tôi nhận được một ngoại lệ con trỏ null khi tôi cố gắng thiết lập âm lượng. Tôi thực sự cảm kích sự giúp đỡ của bạn. –