在whatapp处于活动状态时在Android 6.0+上录制音频
问题描述:
我正在使用简单的icecast流应用程序。在whatapp处于活动状态时在Android 6.0+上录制音频
https://github.com/fatihsokmen/android-icecast-broadcast
我希望它继续当应用程序,如whatapp活跃甚至流。
我不想捕获对话,只是继续从一个设备流式传输。
任何想法,如果这是可能的?
答
你可以尝试Follwoing方式,
-
首先检查了WhatsApp是打开或不
- 对于这个请检查该https://stackoverflow.com/a/23562032/3416642
- 你必须创建一个服务来检查什么应用程序是是否开放 如果开启新服务。
-
创建服务录制音频
- 下面是例子,如何使用服务进行录音。
公共类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(); } } }
注:请处理需要许可