首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >后台录音服务

后台录音服务
EN

Stack Overflow用户
提问于 2016-04-28 00:17:15
回答 1查看 4.9K关注 0票数 3

使用moveTaskToBack(true);方法将活动发送到后台后,我会尝试录制几秒钟的音频。我创建了一个开始录制的服务,并设置了我想要录制音频的时间。一旦最小化,问题就来了。它在大约2秒后停止录制,我需要它录制大约一分钟。我想知道,如果应用程序在后台运行,是否真的可以录制音频。

我的服务记录如下:

代码语言:javascript
复制
@Override
    protected void onHandleIntent(Intent intent) {

    recorder = new MediaRecorder();
    recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
    recorder.setOutputFormat(output_formats[currentFormat]);
    recorder.setOutputFile(fake.getFilename());
    recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);

    try {
        recorder.prepare();

            recorder.start();
            new Handler().postDelayed(new Runnable() {
                @Override
                public void run() {
                    recorder.stop();
                }
            }, 6000000);

    } catch (IllegalStateException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

我的活动调用服务并像这样关闭:

代码语言:javascript
复制
public void mecierro() {
        Intent intent = new Intent(Panic.this, Record_service.class);
        Panic.this.startService(intent);  //starting the service

        start1 = new CountDownTimer(5000, 1000) {

           public void onTick(long millisUntilFinished) {
           }

           public void onFinish() {
            moveTaskToBack(true);  //"minimizing" the app
           }
    }.start();
}
EN

回答 1

Stack Overflow用户

发布于 2017-02-27 02:13:08

是的,在后台录制音频是百分之百的可能。使用服务启动录制器。然后,您启动此服务的活动使用方法startForeground()而不是startService(),这是因为您的服务在可以进一步记录之前被终止。除非用户强制,否则前台服务不太可能被终止。

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

https://stackoverflow.com/questions/36895433

复制
相关文章

相似问题

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