在whatapp处于活动状态时在Android 6.0+上录制音频

问题描述:

我正在使用简单的icecast流应用程序。在whatapp处于活动状态时在Android 6.0+上录制音频

https://github.com/fatihsokmen/android-icecast-broadcast

我希望它继续当应用程序,如whatapp活跃甚至流。

我不想捕获对话,只是继续从一个设备流式传输。

任何想法,如果这是可能的?

你可以尝试Follwoing方式,

  1. 首先检查了WhatsApp是打开或不

  2. 创建服务录制音频

    • 下面是例子,如何使用服务进行录音。

    公共类AudioRecordService延伸服务{

    private static final String TAG = AudioRecordService.class.getSimpleName(); 
    
    
        MediaRecorder mediaRecorder; 
    
        private ShardPref mPref; 
    
    
        public void onCreate() { 
         Log.e(TAG, "onCreate: "); 
         mPref = new ShardPref(this); 
         super.onCreate(); 
    
        } 
    
        @Override 
        public int onStartCommand(Intent intent, int flags, int startId) { 
         Log.e(TAG, "onStartCommand: "); 
         MediaRecorderReady(); 
         return super.onStartCommand(intent, flags, startId); 
        } 
    
        public void onDestroy() { 
         Log.e(TAG, "onDestroy: "); 
         if (mediaRecorder != null) { 
          mediaRecorder.stop(); 
         } 
    
         super.onDestroy(); 
    
        } 
    
    
        @Override 
        public IBinder onBind(Intent intent) { 
         return null; 
        } 
    
        private String getFilename() { 
    
    
         File root = new File(Environment.getExternalStorageDirectory() + File.separator + FolderUtils.AUDIO_FOLDER_NAME + File.separator); 
         if (!root.exists()) { 
          root.mkdirs(); 
         } 
         String filename = Utils.getAudioName(Constant.AUDIO_PATH); 
         mPref.setCurrentAudioFileName(filename); 
    
         return (root.getAbsolutePath() + "/" + filename); 
    
    
        } 
    
        public void MediaRecorderReady() { 
         mediaRecorder = new MediaRecorder(); 
         mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); 
         mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); 
         mediaRecorder.setAudioEncoder(MediaRecorder.OutputFormat.AMR_NB); 
         mediaRecorder.setOutputFile(getFilename()); 
         Log.e(TAG, "Media Recording Audio"); 
         try { 
          mediaRecorder.prepare(); 
          mediaRecorder.start(); 
         } catch (IllegalStateException e) { 
          // TODO Auto-generated catch block 
          e.printStackTrace(); 
         } catch (IOException e) { 
          // TODO Auto-generated catch block 
          e.printStackTrace(); 
         } 
        } 
    
    
    } 
    

注:请处理需要许可