Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 异步任务和音频_Android_Audio_Android Asynctask - Fatal编程技术网

Android 异步任务和音频

Android 异步任务和音频,android,audio,android-asynctask,Android,Audio,Android Asynctask,我正在尝试一个接一个地播放多个音频文件,目前正在使用AsyncTasks来准备和启动mediaPlayer,但未能找到一个好方法在当前曲目结束时转到下一个曲目。并不是每次都会播放每个音频文件,它的播放由布尔值决定 任何帮助都非常感谢。使用MediaPlayer进行此操作是否会像您希望的那样工作。尝试以下教程: 如果这不起作用,你可能需要自己将声音混合在一起,然后使用AudioTrack将结果直接传输到硬件。这是较低的水平,但它会给你最大的控制。这取决于您正在做什么,AudioManager解决

我正在尝试一个接一个地播放多个音频文件,目前正在使用AsyncTasks来准备和启动mediaPlayer,但未能找到一个好方法在当前曲目结束时转到下一个曲目。并不是每次都会播放每个音频文件,它的播放由布尔值决定


任何帮助都非常感谢。

使用MediaPlayer进行此操作是否会像您希望的那样工作。尝试以下教程:

如果这不起作用,你可能需要自己将声音混合在一起,然后使用AudioTrack将结果直接传输到硬件。这是较低的水平,但它会给你最大的控制。这取决于您正在做什么,AudioManager解决方案是否适合您。这绝对是更简单的路线。但是,如果你试图排列两个样本,以便在其中一个样本完成下一个样本开始时,就像在音乐应用程序中一样,你可能需要自己混合和流式传输音频


我想你已经读过android sdk/docs/reference/android/media/MediaPlayer.html,上面写着:

当播放到达流的末尾时,播放完成。 如果循环模式设置为truewith setLooping(布尔值),则 MediaPlayer对象应保持在启动状态。如果循环 模式设置为false,播放器引擎调用用户提供的 回调方法OnCompletion.OnCompletion(),如果 OnCompletionListener通过预先注册 setOnCompletionListener(OnCompletionListener)。调用 回调信号表示对象现在已在回放中完成 国家。在PlaybackCompleted状态下,调用start()可以 从音频/视频源的开头重新开始播放


因此,您可以设置一个新的源,prepareAsync,然后在completioncallback中启动。通过这种方式,您可以获得连续播放,但并非无缝播放

谢谢,这是使用同一个mediaPlayer播放所有曲目的好方法