标签: pause

使用Android MediaRecorder暂停和恢复(API级别<24)

在使用时MediaRecorder,我们没有API级别低于24的暂停/恢复.所以有一种方法可以做到这一点:

  1. 暂停时,停止录音机并创建录音文件.
  2. 并在恢复时再次开始录制并创建另一个文件,并继续这样做,直到用户按下停止.
  3. 最后合并所有文件.

许多人在SO上问这个问题,但无论如何都找不到解决这个问题.人们谈论通过停止在暂停操作上录制并在恢复时重新开始来创建多个媒体文件.所以我的问题是我们如何以编程方式合并/加入所有媒体文件?

注意:在我的情况下MPEG4容器 - 音频为m4a,视频为mp4.

我尝试使用SequenceInputStream合并多个InputStream各自生成的录制文件.但它总是只产生第一个文件.

代码片段:

Enumeration<InputStream> enu = Collections.enumeration(inputStreams);
        SequenceInputStream sqStream = new SequenceInputStream(enu);
        while ((oneByte = sqStream.read(buffer)) != -1) {
            fileOutputStream.write(buffer, 0, oneByte);

        }
        sqStream.close();
        while (enu.hasMoreElements()) {
            InputStream element = enu.nextElement();
            element.close();
        }
        fileOutputStream.flush();
        fileOutputStream.close();
Run Code Online (Sandbox Code Playgroud)

merge android mpeg-4 mediarecorder pause

5
推荐指数
1
解决办法
4099
查看次数

R语言,暂停循环并要求用户继续

我有一个想法在某些迭代中暂停循环并向“用户”询问一些答案。

例如

some_value = 0
some_criteria = 50
for(i in 1:100)
{
  some_value = some_value + i
  if(some_value > some_criteria)
  {
    #Here i need to inform the user that some_value reached some_criteria
    #I also need to ask the user whether s/he wants to continue operations until the loop ends
    #or even set new criteria
  }
}
Run Code Online (Sandbox Code Playgroud)

再次,我想暂停循环,并询问用户是否愿意继续,例如:“按 Y/N”

loops r pause

5
推荐指数
1
解决办法
4774
查看次数

如何将我的Java程序暂停2秒钟

我是Java的新手,正在制作一个小游戏进行练习。

if (doAllFaceUpCardsMatch == false) {
        //run pause here//
        concentration.flipAllCardsFaceDown();
} else {
        concentration.makeAllFaceUpCardsInvisible();
}
Run Code Online (Sandbox Code Playgroud)

我想先在这里暂停游戏两秒钟

concentration.flipAllCardsFaceDown();
Run Code Online (Sandbox Code Playgroud)

我将如何暂停它?

java timer pause

5
推荐指数
1
解决办法
3万
查看次数

G1 GC - 大型后台 I/O 导致 JVM 无响应 - 暂停 8 秒

我们有一个几乎需要实时响应的 Java 应用程序。但我们也看到了长达 8 秒的停顿。

特殊运行条件:

  1. 在某些时间间隔,应用程序会将大小高达 1.5G 的巨大数据快照序列化到磁盘 (SSD) 中。
  2. m/c 中的其他一些共存进程偶尔会发生一些繁重的后台 I/O。

我们正在观察的是,这个大型序列化写入发生的间隔期间,如果 GC 偶然启动,它会导致 6 到 8 秒的巨大暂停,JVM 处于完全无响应/冻结状态。

从 JFR 记录可以看出,

  1. 除了写入磁盘的线程之外,所有线程都处于停放/等待/睡眠状态。
  2. G1 GC 大约需要 200 毫秒才能完成 GC。

来自 GC 日志:2018-09-05T18:23:40.277+0000: 39892.345:应用程序线程停止的总时间:8.3785112秒,停止线程花费:8.3765855 秒

Java 版本:java 版本“1.8.0_181”Java(TM) SE 运行时环境(构建 1.8.0_181-b25)Java HotSpot(TM) 64 位服务器 VM(构建 25.181-b25,混合模式)

问题:

  1. 当 GC 和后台 I/O 同时发生时,为什么非 GC JVM 会暂停 8 秒?
  2. 如何克服这个大停顿?

JFR 文件:https : //www.filehosting.org/file/details/756217/Run.jfr

java garbage-collection g1gc pause

5
推荐指数
1
解决办法
732
查看次数

循环运行 .py 文件

我目前正在尝试运行一个.py文件,但在循环中。只是为了测试我正在使用

I = 0
while I<10:
    os.pause(10)
    open(home/Tyler/desktop/test.py)
    I = I + 1
Run Code Online (Sandbox Code Playgroud)

我确信这是一个非常简单的问题,但我无法弄清楚。我还想在最后添加一点,我必须使其无限运行并让它运行一些其他事情。

python while-loop python-2.7 raspberry-pi2 pause

4
推荐指数
1
解决办法
2万
查看次数

Swift, SpriteKit - 暂停整个脚本

是否可以使用 GameViewController 中的代码在 GameScene 中暂停整个脚本?我不想延迟/暂停线程。有多个活动和功能同时进行,我想暂停一切。

我也希望能够在暂停后继续。

例如,在 GameViewController 中:

GameScene.pause()
Run Code Online (Sandbox Code Playgroud)

GameScene.resume()
Run Code Online (Sandbox Code Playgroud)

先感谢您。

ios sprite-kit swift pause

4
推荐指数
1
解决办法
1050
查看次数

_mm_pause在Intel上的gcc用法

我已参考此网页:https : //software.intel.com/zh-cn/articles/benefitting-power-and-performance-sleep-loops ,以下内容我无法理解:

暂停指令向处理器提示调用线程处于“旋转等待”循环中。此外,在不支持Intel SSE2的x86体系结构上使用时,pause指令是无操作的,这意味着它仍将执行而无需做任何事情或不会引起故障。虽然这意味着不支持Intel SSE2的较早的x86架构不会看到暂停带来的好处,但这也意味着您可以保持一条通向整个主板的简单代码路径。

我想知道,Linux中的lscpu会显示cpu信息,但是我不知道我是否支持SSE2的cpu,如何自己检查?

Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                24
On-line CPU(s) list:   0-23
Thread(s) per core:    2
Core(s) per socket:    6
Socket(s):             2
NUMA node(s):          2
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 63
Model name:            Intel(R) Xeon(R) CPU E5-2643 v3 @ 3.40GHz
Stepping:              2
CPU MHz:               3599.882
BogoMIPS:              6804.22
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              20480K
NUMA node0 CPU(s):     0,2,4,6,8,10,12,14,16,18,20,22 …
Run Code Online (Sandbox Code Playgroud)

linux x86 sleep intel pause

4
推荐指数
1
解决办法
3917
查看次数

暂停后在AVAudioPlayer中,歌曲不会在Swift上继续播放

暂停后,在AVAudioPlayer中,歌曲不会继续,请在Swift上重新开始。问题是当我选择“暂停”按钮,然后再次选择“播放”按钮时,它应该从启动开始。

import UIKit
import AVFoundation
class DetailViewController: UIViewController {

let musicArray:[String] = ["reamon", "sandman"]

var audioPlayer: AVAudioPlayer?

var songIndex:Int = 0

@IBAction func pauseButton(sender: AnyObject) {
    audioPlayer!.pause()

}

@IBAction func playButton(sender: AnyObject) {

    let mySound = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource(musicArray[songIndex], ofType: "mp3")!)

    do{
        audioPlayer = try AVAudioPlayer(contentsOfURL: mySound)
        audioPlayer!.prepareToPlay()
        audioPlayer!.play()
    } catch {
        print("Error getting the audio file")
    }

}

@IBOutlet weak var stopButtonOutlet: UIButton!

@IBAction func stopButton(sender: AnyObject) {
    audioPlayer!.stop()
    audioPlayer!.currentTime = 0
}

func playSongAtIndex(index: Int) {

    songIndex = index …
Run Code Online (Sandbox Code Playgroud)

xcode avaudioplayer swift pause

3
推荐指数
1
解决办法
1773
查看次数

如何在任务管理器中隐藏应用程序的预览

我用 Java 和 LibGdx 制作游戏

这是一个有时间限制的技巧游戏,问题是玩家可以按home键暂停应用程序,进入任务管理器,可以看到应用程序的预览来寻找他要找到的东西,而不用计算时间

任务管理器

所以,当播放器按下主页按钮暂停时,我想隐藏应用程序的预览

我试图做的

我覆盖暂停和恢复处理程序

@Override
public void pause() {
    Gdx.app.log("LibGDX", "pause");
    state = State.PAUSE;

    Gdx.graphics.setContinuousRendering(false);
    Gdx.graphics.requestRendering();
}

@Override
public void resume() {
    Gdx.app.log("LibGDX", "resume");
    state = State.RUN;
    Gdx.graphics.setContinuousRendering(true);
}
Run Code Online (Sandbox Code Playgroud)

和我public void render(float)功能的主要部分

    switch (state)
    {
        case RUN:
            // game
            break;
        case PAUSE:
            // a black rectangle on screen
            shapeRenderer.setProjectionMatrix(camera.combined);
            shapeRenderer.begin(ShapeRenderer.ShapeType.Filled);
            shapeRenderer.setColor(Color.BLACK);
            shapeRenderer.rect(0, 0, GameScreen.WIDTH, GameScreen.HEIGHT);
            shapeRenderer.end();
            break;
        default:
            break;
    }
Run Code Online (Sandbox Code Playgroud)

日志告诉我确实调用了暂停和恢复

但是在任务管理器中,我仍然看到游戏而不是黑色矩形

更新 1

荒谬地回答:

我试过你的建议

package com.mygdx.game;

import android.os.Bundle;
import android.view.WindowManager;

import …
Run Code Online (Sandbox Code Playgroud)

java android libgdx pause

3
推荐指数
1
解决办法
2241
查看次数

协作暂停异步方法

我正在使用一个任务来进行长时间运行的异步处理操作,我希望能够在任意时刻暂停和恢复。对我来说幸运的是,Microsoft 的 TPL 自己的作者之一已经提出了这个问题的解决方案。唯一的麻烦是他的解决方案不能正常工作。

当您删除await Task.Delay(100)下面代码中的 时,代码将在第一个请求之后停止接受暂停请求。如果 的值可信的话,代码似乎SomeMethodAsync会在与其他任务相同的线程上恢复执行。Thread.CurrentThread.ManagedThreadId的输出还SomeMethodAsync表明它正在多个线程上运行。

我一直发现 TPL 相当混乱且难以使用,而 async/await 更是如此,所以我很难理解这里到底发生了什么。如果有人能解释的话,我将非常感激。

极简示例代码:

using System;
using System.Threading;
using System.Threading.Tasks;

namespace PauseTokenTest {
    class Program {
        static void Main() {
            var pts = new PauseTokenSource();
            Task.Run(() =>
            {
                while (true) {
                    Console.ReadLine();
                    Console.WriteLine(
                        $"{Thread.CurrentThread.ManagedThreadId}: Pausing task");
                    pts.IsPaused = !pts.IsPaused;
                }
            });
            SomeMethodAsync(pts.Token).Wait();
        }

        public static async Task SomeMethodAsync(PauseToken pause) {
            for (int i = 0; ; i++) {
                Console.WriteLine($"{Thread.CurrentThread.ManagedThreadId}: {i}"); …
Run Code Online (Sandbox Code Playgroud)

c# asynchronous task-parallel-library async-await pause

2
推荐指数
1
解决办法
118
查看次数