首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在whatapp处于活动状态时在安卓6.0+上录制音频

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

Stack Overflow用户
提问于 2017-04-10 19:03:18
回答 1查看 75关注 0票数 0

我正在使用一个简单的冰播流媒体应用程序。

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

我希望它即使在whatapp等应用程序处于活动状态时也能继续流媒体。

我不想捕获对话,只想从一台设备上继续流媒体。

你知道这是否可能吗?

EN

回答 1

Stack Overflow用户

发布于 2017-04-10 19:20:18

你可以试试下面的方法,

  1. 首先检查whatsapp是否已打开

代码语言:javascript
复制
- For this Please check this [https://stackoverflow.com/a/23562032/3416642](https://stackoverflow.com/a/23562032/3416642)
- You have to create a service to check whats app is open or not if open start new service.

用于录制音频的

  1. 创建服务

代码语言:javascript
复制
- Here is example how to record audio using Service.

公共类AudioRecordService扩展了服务{

代码语言:javascript
复制
 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();         }     }   }

注意:请处理require权限

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43321488

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档