天天看點

MediaPlayer播放不了音頻和播放的音頻錯誤

問題:在系統裡面播放兩個音頻檔案,一個是在鎖屏,一個是觸摸螢幕就播放。

思路:mediaPlayer有兩種方式播放音頻檔案,

MediaPlayer player = new MediaPlayer();

MediaPlayer player = MediaPlayer.create(context,R.rawXXX);

安卓螢幕的觸摸事件是在PhoneWindowManager.java 裡面,但是在這裡面是不能播放音頻的,确切的說是用new MediaPlayer();方式播放音頻不是指定的音頻檔案,可能是PhoneWindowManager不能初始化MediaPlayer,MediaPlayer.create也是不能播放;

是以沒辦法後面加了廣播,在SystenUI裡面播放音頻。

action = intent.getAction();
+                       if("com.lockscreen.protect".equals(action)){
+                       try{
+                       player2 = MediaPlayer.create(context,R.raw.protect_voice);
+                       String  path   =  "/system/media/audio/protect_voice.mp3";
+                       //player2 = new MediaPlayer();
+                       if(player2 != null){                            
+                       player2.setOnCompletionListener(new OnCompletionListener() {  
+
+             @Override  
+             public void onCompletion(MediaPlayer mp) {  
+                               //isChargingVoice = true;
+                               SystemProperties.set("persist.sys.ismediaplaying","true");                              
+                               if(player2 != null){
+                               player2.reset();
+                               player2.stop();
+                               player2.release();
+                               player2 = null;
+                               }
+             }  
+                       });     
+                       }                               
+                                       player2.start();
+                                       player2.setLooping(false);
           

繼續閱讀