導航:首頁 > 軟體問題 > 蘋果怎麼設置讓app在後台繼續播放

蘋果怎麼設置讓app在後台繼續播放

發布時間:2023-01-25 11:39:38

A. 蘋果手機怎麼保持app一直運行

我們都知道,蘋果對APP佔用硬體資源管的很嚴,更不要說應用後台時候的資源佔用了。正常情況下,使用應用時,APP從硬碟載入到內存,開始工作;當用戶按下home鍵,APP便被掛起,依然駐留在內存中,這種狀態下,不調用蘋果已開放的幾種後台方法,程序便不會運行;如果在這個時候,使程序繼續運行,則為後台狀態;如果當前內存將要不夠用時,系統會自動把之前掛起狀態下的APP請出內存。所以我們看到,有些時候打開APP時,還是上次退出時的那個頁面那些數據,有時則是重新從閃屏進入。
iOS系統後台機制大概可以分為5種狀態

Not Running:APP沒有啟動,也沒有後台運行。
Active:用戶正在使用APP,比如說我們聊微信看網頁的時候,APP就處於Active狀態。
Inactive:這是一個過渡的狀態,APP雖然打開了,但是用戶沒有跟APP有任何互動操作。
Background:APP在後台運行,微信會在沒有打開的時候接收消息。
Suspended:APP雖然在後台運行,但是處於休眠狀態,只佔用一點內存。

** 那麼我需要的是Background模式。即APP在後台運行同時保持程序active的狀態 **
首先去xCode裡面設置。到info.plist中添加以下信息:

然後到Capabilities裡面打開後台模式,並根據項目的要求勾選對應的功能。我這里只需要保持後台運行並且播放背景音樂及通知功能。所以就勾選了第一個和最後一個

以上這兩步是告訴系統我這個APP支持後台模式,對應的環境為音頻環境。
可是到這一步,APP還是不能長時間運行到後台。
為什麼?我們思考一下。我們讓程序支持了後台運行的模式。那麼我們是不是還需要系統知道我們的程序要在後台運行多久呢?我們需要告訴系統我們期望APP在後台存活的時間。
首先聲明一個屬性
@property (nonatomic, assign) UIBackgroundTaskIdentifier bgTask;

在進入後台的時候通過AppDelegate裡面的方法:
-(void)applicationDidEnterBackground:(UIApplication *)application{
[ self comeToBackgroundMode];
}

-(void)comeToBackgroundMode{
//初始化一個後台任務BackgroundTask,這個後台任務的作用就是告訴系統當前app在後台有任務處理,需要時間
UIApplication* app = [UIApplication sharedApplication];
self.bgTask = [app :^{
[app endBackgroundTask:self.bgTask];
self.bgTask = UIBackgroundTaskInvalid;
}];
//開啟定時器 不斷向系統請求後台任務執行的時間
self.timer = [NSTimer scheledTimerWithTimeInterval:25.0 target:self selector:@selector(applyForMoreTime) userInfo:nil repeats:YES];
[self.timer fire];
}

-(void)applyForMoreTime {
//如果系統給的剩餘時間小於60秒 就終止當前的後台任務,再重新初始化一個後台任務,重新讓系統分配時間,這樣一直循環下去,保持APP在後台一直處於active狀態。
if ([UIApplication sharedApplication].backgroundTimeRemaining < 60) {
[[UIApplication sharedApplication] endBackgroundTask:self.bgTask];
self.bgTask = [[UIApplication sharedApplication] :^{
[[UIApplication sharedApplication] endBackgroundTask:self.bgTask];
self.bgTask = UIBackgroundTaskInvalid;
}];
}
}

現在就可以讓我們的APP一直運行在後台啦!總結下來的思路就是:通過一個後台任務(這個任務我們也不用管,它存在的意義就是和系統去請求後台運行的一定的時間),這個時間我們不知道也不用去管,我們可以通過該時間還剩下多少判斷是否繼續請求時間,如此循環,我們就可以不斷的請求時間來保持我們的app一直運行在後台。
接下來解決音樂在後台模式(切換到後台或者鎖屏狀態)下停止播放的問題。
其實很簡單。
//設置後台模式和鎖屏模式下依然能夠播放
[[AVAudioSession sharedInstance] setCategory: withOptions: error:nil];
[[AVAudioSession sharedInstance] setActive: YES error: nil];

//初始化播放器和兩個音頻(一個有聲 一個無聲)
NSURL *urlSound = [[NSURL alloc]initWithString:[[NSBundle mainBundle]pathForResource:@"pomodoSound" ofType:@"m4a"]];
playerSound = [[AVAudioPlayer alloc] initWithContentsOfURL:urlSound error:&playerError];
NSURL *urlNoSound = [[NSURL alloc]initWithString:[[NSBundle mainBundle]pathForResource:@"backSound" ofType:@"mp3"]];
playerNoSound = [[AVAudioPlayer alloc] initWithContentsOfURL:urlNoSound error:&playerError];

playerSound.numberOfLoops = -1;
playerNoSound.numberOfLoops = -1;

player = playerSound;
[player play];

下面解釋一下AVAudioSession的一些設置參數

NSString *const AVAudioSessionCategoryAmbient;
靜音模式或者鎖屏下不再播放音樂,和其他app聲音混合。
NSString *const ;
默認模式,靜音模式或者鎖屏下不再播放音樂,不和其他app聲音混合。
NSString *const ;
表示對於用戶切換靜音模式或者鎖屏 都不理睬,繼續播放音樂。並且不播放來自其他app的音樂
NSString *const AVAudioSessionCategoryRecord;
不播放音樂,鎖屏狀態繼續錄音
NSString *const ;
播放音樂,並錄音

B. 蘋果手機怎麼設置軟體後台運行程序

以蘋果手機為例,操作如下:

1、首先,在手機應用程序中,找到設置,點擊屏幕使用時間。

C. 蘋果手機怎麼設置後台軟體運行

1、首先,打開蘋果手機上面的「設置」,進入手機的系統功能設置,如圖所示專。

D. 蘋果手機怎麼設置讓軟體一直後台運行

您好,方法
在系統設置的下面,找到並打開應用程序管理。
打開應用程序管理,點擊選項卡切換為正在運行,查看有哪應用在運行。
點擊需要關閉的進程操作。
點擊進入需要關閉的應用進程,點擊下面的停止,手動強制停止應用運行。
沒有被選擇保護的應用,則會在鎖屏的時候自動關閉,強制停止退出。
總結以下幾點:
1.首先找到自己手機的應用管理
2.點擊應用進行強制或者進行運行即可

E. 蘋果手機怎麼設置後台軟體運行

1、首先將手機解鎖後,進入待機頁面,手指從屏幕底部往上滑動,出現如下界面。

閱讀全文

與蘋果怎麼設置讓app在後台繼續播放相關的資料

熱點內容
去除思科配置文件中的號 瀏覽:196
運行的16位程序太多 瀏覽:1
蘋果mac用什麼軟體好學編程 瀏覽:681
ai中線段怎麼添加寬度配置文件 瀏覽:956
lol文件怎麼找不到game 瀏覽:142
aecc視頻教程 瀏覽:983
linux怎麼查看資料庫用戶名 瀏覽:182
cefs文件系統 瀏覽:404
學平面設計個編程哪個好 瀏覽:701
如何把編程文件轉為hex 瀏覽:80
清除蘋果地圖來自地址 瀏覽:233
已經打開的文件如何清理 瀏覽:685
視頻網站有什麼用 瀏覽:70
多個表格文件怎樣壓縮文件 瀏覽:729
cad文件大很卡如何解決 瀏覽:633
將java程序打包成apk 瀏覽:277
2021唱吧文件找不到了 瀏覽:463
華為p9手機文件管理 瀏覽:284
固定在工具欄的文件夾怎麼查找路徑 瀏覽:667
半條命2有幾個版本 瀏覽:333

友情鏈接