0

我正在创建一个有趣的小应用程序来将一些 mp3 文件播放到 PhoneGap 应用程序中我已经设法在后台播放音频,非常感谢 StackOverflow 上的帮助

但是现在的问题是当应用程序在后台运行时,或者应用程序被锁定时,下一首歌曲无法播放。我已经编写了播放下一首歌曲的代码

=======

$(".greyselected").each(function(i) {
if($(this).is(":visible"))
{
activetrackclass = $(this).attr("class").split(" ")[0];
return;
}
});


$("." + activetrackclass).each(function(i){
if($(this).hasClass("greyselected"))
{
fetchmp3($("." + activetrackclass + ":eq(" + parseInt(i+1) + ")").find(".partistname").text(), $("." + activetrackclass + ":eq(" + parseInt(i+1) + ")").find(".ptrackname").text(), $("." + activetrackclass + ":eq(" + parseInt(i+1) + ")").find(".ptrackurl").text(), $("." + activetrackclass + ":eq(" + parseInt(i+1) + ")").find(".spanduration").text(), "tracklist");

$("." + activetrackclass).removeClass("greyselected");
$("." + activetrackclass + ":eq(" + parseInt(i+1) + ")").addClass("greyselected");

$("#divplayer").slideDown("slow");
return false;
}
});

=======

grayselected 是当前正在播放的歌曲 activetrackclass 是一个变量,它保存了曲目项或曲目 div 的类 fetchmp3 是调用列表中下一个 mp3 文件的函数

所有 mp3 都托管在服务器上

当应用程序处于活动状态时,它播放得很好,但一旦进入后台,它只会播放正在播放的歌曲,然后停止,直到应用程序再次可见

一如既往地感谢您的宝贵帮助

4

1 回答 1

0

后台任务仅运行一段时间,然后操作系统将其杀死。如果您的应用程序未处于活动状态,则它不会永远运行,并且 ios 会在一段时间后停止它。

http://www.macworld.com/article/1164616/how_ios_multitasking_really_works.html

您可以通过在文件中指定audio模式来声明对后台播放的支持。查看iphone 编程指南的第 60 页了解更多详细信息UIBackgroundModesInfo.plist

如果您的应用程序可以使用本机代码,您有很多选项来配置音频的行为。检查Categories Express Audio Roles下面的文档。

http://developer.apple.com/library/ios/#documentation/Audio/Conceptual/AudioSessionProgrammingGuide/Introduction/Introduction.html#//apple_ref/doc/uid/TP40007875

Apple 开发者论坛的一个老帖子

https://devforums.apple.com/message/264397#264397

于 2012-07-05T17:00:54.667 回答