Android 听筒播放模式实现代码

清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
package com.example.media; 
   
import java.io.IOException; 
   
import android.app.Activity; 
import android.content.Context; 
import android.media.AudioManager; 
import android.media.MediaPlayer; 
import android.media.MediaPlayer.OnCompletionListener; 
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
   
public class AAA extends Activity { 
    private Button play;//播放 
    private Button stop;//停止 
       
    private AudioManager am;//提供访问控制音量和钤声模式的操作 
    private boolean isReleased = false
    private boolean isPlaying = false
    private MediaPlayer mMediaPlayer; 
   
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.activity_main); 
        play = (Button) findViewById(R.id.main_play); 
        stop = (Button) findViewById(R.id.main_stop); 
           
        play.setOnClickListener(new OnClickListener() { 
            @Override 
            public void onClick(View v) { 
                am = (AudioManager) getSystemService(Context.AUDIO_SERVICE); 
                //听筒模式下设置为false 
                am.setSpeakerphoneOn(false); 
                //设置成听筒模式 
                am.setMode(AudioManager.MODE_IN_CALL); 
                //设置为通话状态 
                setVolumeControlStream(AudioManager.STREAM_VOICE_CALL); 
                   
                try
                    if (!isPlaying) { 
                        mMediaPlayer = MediaPlayer.create(AAA.this, R.raw.man); 
                        isPlaying = true
                        isReleased = false
                        mMediaPlayer.setLooping(true); 
                        try
                            mMediaPlayer.prepare(); 
                        } catch (IllegalStateException e) { 
                            e.printStackTrace(); 
                        } catch (IOException e) { 
                            e.printStackTrace(); 
                        
   
                        mMediaPlayer.start(); 
                    
                } catch (IllegalStateException e) { 
                    e.printStackTrace(); 
                
                //播放完毕监听 
                mMediaPlayer.setOnCompletionListener(new OnCompletionListener() { 
                            public void onCompletion(MediaPlayer arg0) { 
                                mMediaPlayer.release(); 
                                //设置回正常模式 
                                am.setMode(AudioManager.MODE_NORMAL); 
                            
                        }); 
            
        }); 
   
        stop.setOnClickListener(new OnClickListener() { 
            @Override 
            public void onClick(View v) { 
                if (isPlaying && !isReleased) { 
                    isReleased = true
                    mMediaPlayer.stop(); 
                    mMediaPlayer.release(); 
                    isPlaying = false
                    //停止播放设置为正常状态 
                    am.setMode(AudioManager.MODE_NORMAL); 
                
            
        }); 
    
}