1
我有一個視圖,用導航控制器推動另一個視圖。在第二個視圖中,我播放一個音頻,即使用戶回到第一個視圖時,我仍想繼續播放音樂,並彈出第二個視圖,就像在iPod應用程序中一樣。我怎樣才能做到這一點?繼續執行方法,即使它的ViewController在iOS中消失
我有一個視圖,用導航控制器推動另一個視圖。在第二個視圖中,我播放一個音頻,即使用戶回到第一個視圖時,我仍想繼續播放音樂,並彈出第二個視圖,就像在iPod應用程序中一樣。我怎樣才能做到這一點?繼續執行方法,即使它的ViewController在iOS中消失
你應該從你的視圖控制器抽象音頻播放,因爲它不是真正相關的功能(加上它會讓你做你想做的)。我建議創建一個單例對象,其功能是播放指定的歌曲,暫停/停止它,並從中檢索狀態(如isPlaying等)。我不會深入瞭解單身人士/如何製作單身人士,因爲其他堆棧溢出帖子和快速谷歌搜索將產生結果,但基本前提是您創建了一個類並將此方法添加到該單元中:
+ (id)sharedInstance
{
static dispatch_once_t dispatchOncePredicate = 0;
__strong static id _sharedObject = nil;
dispatch_once(&dispatchOncePredicate, ^{
_sharedObject = [[self alloc] init];
});
return _sharedObject;
}
然後你就可以創建出象這樣的方法:
+ (void)playSongWithFile:(NSString *)fileName
{
// retrieve the file and play it
}
而且從你#IMPORT你單身的對象的任何類,您可以撥打:
[[MySingleton sharedInstance] playSongWithFile:@"awesomesong.mp3"];
一個Singleton對象一世它是一個只能實例化一次的對象,在您的應用程序執行期間「繼續存在」,因此無論視圖控制器發生了什麼,它都會繼續按照您的指示進行操作。
感謝您的回答!如果你投我的帖子,我將獲得聲望lvl 15,並且能夠投你的帖子。 –