잠금화면 플레이어 재생시간 동기화
This commit is contained in:
		| @@ -1,226 +1,226 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> | ||||
| <plist version="1.0"> | ||||
|     <dict> | ||||
|         <key>FirebaseAppDelegateProxyEnabled</key> | ||||
|         <false/> | ||||
|         <key>NSAppTransportSecurity</key> | ||||
|         <dict> | ||||
|             <key>NSAllowsArbitraryLoads</key> | ||||
|             <true/> | ||||
|         </dict> | ||||
|         <key>UIAppFonts</key> | ||||
|         <array> | ||||
|             <string>gmarket_sans_bold.otf</string> | ||||
|             <string>gmarket_sans_medium.otf</string> | ||||
|             <string>gmarket_sans_light.otf</string> | ||||
|         </array> | ||||
|         <key>UIBackgroundModes</key> | ||||
|         <array> | ||||
|             <string>audio</string> | ||||
|             <string>fetch</string> | ||||
|             <string>remote-notification</string> | ||||
|         </array> | ||||
|         <key>GADApplicationIdentifier</key> | ||||
|         <string>ca-app-pub-1299501215847962~3447556960</string> | ||||
|         <key>SKAdNetworkItems</key> | ||||
|         <array> | ||||
|             <dict> | ||||
|                 <key>SKAdNetworkIdentifier</key> | ||||
|                 <string>cstr6suwn9.skadnetwork</string> | ||||
|             </dict> | ||||
|             <dict> | ||||
|                 <key>SKAdNetworkIdentifier</key> | ||||
|                 <string>4fzdc2evr5.skadnetwork</string> | ||||
|             </dict> | ||||
|             <dict> | ||||
|                 <key>SKAdNetworkIdentifier</key> | ||||
|                 <string>4pfyvq9l8r.skadnetwork</string> | ||||
|             </dict> | ||||
|             <dict> | ||||
|                 <key>SKAdNetworkIdentifier</key> | ||||
|                 <string>2fnua5tdw4.skadnetwork</string> | ||||
|             </dict> | ||||
|             <dict> | ||||
|                 <key>SKAdNetworkIdentifier</key> | ||||
|                 <string>ydx93a7ass.skadnetwork</string> | ||||
|             </dict> | ||||
|             <dict> | ||||
|                 <key>SKAdNetworkIdentifier</key> | ||||
|                 <string>5a6flpkh64.skadnetwork</string> | ||||
|             </dict> | ||||
|             <dict> | ||||
|                 <key>SKAdNetworkIdentifier</key> | ||||
|                 <string>p78axxw29g.skadnetwork</string> | ||||
|             </dict> | ||||
|             <dict> | ||||
|                 <key>SKAdNetworkIdentifier</key> | ||||
|                 <string>v72qych5uu.skadnetwork</string> | ||||
|             </dict> | ||||
|             <dict> | ||||
|                 <key>SKAdNetworkIdentifier</key> | ||||
|                 <string>ludvb6z3bs.skadnetwork</string> | ||||
|             </dict> | ||||
|             <dict> | ||||
|                 <key>SKAdNetworkIdentifier</key> | ||||
|                 <string>cp8zw746q7.skadnetwork</string> | ||||
|             </dict> | ||||
|             <dict> | ||||
|                 <key>SKAdNetworkIdentifier</key> | ||||
|                 <string>3sh42y64q3.skadnetwork</string> | ||||
|             </dict> | ||||
|             <dict> | ||||
|                 <key>SKAdNetworkIdentifier</key> | ||||
|                 <string>c6k4g5qg8m.skadnetwork</string> | ||||
|             </dict> | ||||
|             <dict> | ||||
|                 <key>SKAdNetworkIdentifier</key> | ||||
|                 <string>s39g8k73mm.skadnetwork</string> | ||||
|             </dict> | ||||
|             <dict> | ||||
|                 <key>SKAdNetworkIdentifier</key> | ||||
|                 <string>3qy4746246.skadnetwork</string> | ||||
|             </dict> | ||||
|             <dict> | ||||
|                 <key>SKAdNetworkIdentifier</key> | ||||
|                 <string>f38h382jlk.skadnetwork</string> | ||||
|             </dict> | ||||
|             <dict> | ||||
|                 <key>SKAdNetworkIdentifier</key> | ||||
|                 <string>hs6bdukanm.skadnetwork</string> | ||||
|             </dict> | ||||
|             <dict> | ||||
|                 <key>SKAdNetworkIdentifier</key> | ||||
|                 <string>v4nxqhlyqp.skadnetwork</string> | ||||
|             </dict> | ||||
|             <dict> | ||||
|                 <key>SKAdNetworkIdentifier</key> | ||||
|                 <string>wzmmz9fp6w.skadnetwork</string> | ||||
|             </dict> | ||||
|             <dict> | ||||
|                 <key>SKAdNetworkIdentifier</key> | ||||
|                 <string>yclnxrl5pm.skadnetwork</string> | ||||
|             </dict> | ||||
|             <dict> | ||||
|                 <key>SKAdNetworkIdentifier</key> | ||||
|                 <string>t38b2kh725.skadnetwork</string> | ||||
|             </dict> | ||||
|             <dict> | ||||
|                 <key>SKAdNetworkIdentifier</key> | ||||
|                 <string>7ug5zh24hu.skadnetwork</string> | ||||
|             </dict> | ||||
|             <dict> | ||||
|                 <key>SKAdNetworkIdentifier</key> | ||||
|                 <string>gta9lk7p23.skadnetwork</string> | ||||
|             </dict> | ||||
|             <dict> | ||||
|                 <key>SKAdNetworkIdentifier</key> | ||||
|                 <string>vutu7akeur.skadnetwork</string> | ||||
|             </dict> | ||||
|             <dict> | ||||
|                 <key>SKAdNetworkIdentifier</key> | ||||
|                 <string>y5ghdn5j9k.skadnetwork</string> | ||||
|             </dict> | ||||
|             <dict> | ||||
|                 <key>SKAdNetworkIdentifier</key> | ||||
|                 <string>n6fk4nfna4.skadnetwork</string> | ||||
|             </dict> | ||||
|             <dict> | ||||
|                 <key>SKAdNetworkIdentifier</key> | ||||
|                 <string>v9wttpbfk9.skadnetwork</string> | ||||
|             </dict> | ||||
|             <dict> | ||||
|                 <key>SKAdNetworkIdentifier</key> | ||||
|                 <string>n38lu8286q.skadnetwork</string> | ||||
|             </dict> | ||||
|             <dict> | ||||
|                 <key>SKAdNetworkIdentifier</key> | ||||
|                 <string>47vhws6wlr.skadnetwork</string> | ||||
|             </dict> | ||||
|             <dict> | ||||
|                 <key>SKAdNetworkIdentifier</key> | ||||
|                 <string>kbd757ywx3.skadnetwork</string> | ||||
|             </dict> | ||||
|             <dict> | ||||
|                 <key>SKAdNetworkIdentifier</key> | ||||
|                 <string>9t245vhmpl.skadnetwork</string> | ||||
|             </dict> | ||||
|             <dict> | ||||
|                 <key>SKAdNetworkIdentifier</key> | ||||
|                 <string>eh6m2bh4zr.skadnetwork</string> | ||||
|             </dict> | ||||
|             <dict> | ||||
|                 <key>SKAdNetworkIdentifier</key> | ||||
|                 <string>a2p9lx4jpn.skadnetwork</string> | ||||
|             </dict> | ||||
|             <dict> | ||||
|                 <key>SKAdNetworkIdentifier</key> | ||||
|                 <string>22mmun2rn5.skadnetwork</string> | ||||
|             </dict> | ||||
|             <dict> | ||||
|                 <key>SKAdNetworkIdentifier</key> | ||||
|                 <string>4468km3ulz.skadnetwork</string> | ||||
|             </dict> | ||||
|             <dict> | ||||
|                 <key>SKAdNetworkIdentifier</key> | ||||
|                 <string>2u9pt9hc89.skadnetwork</string> | ||||
|             </dict> | ||||
|             <dict> | ||||
|                 <key>SKAdNetworkIdentifier</key> | ||||
|                 <string>8s468mfl3y.skadnetwork</string> | ||||
|             </dict> | ||||
|             <dict> | ||||
|                 <key>SKAdNetworkIdentifier</key> | ||||
|                 <string>klf5c3l5u5.skadnetwork</string> | ||||
|             </dict> | ||||
|             <dict> | ||||
|                 <key>SKAdNetworkIdentifier</key> | ||||
|                 <string>ppxm28t8ap.skadnetwork</string> | ||||
|             </dict> | ||||
|             <dict> | ||||
|                 <key>SKAdNetworkIdentifier</key> | ||||
|                 <string>ecpz2srf59.skadnetwork</string> | ||||
|             </dict> | ||||
|             <dict> | ||||
|                 <key>SKAdNetworkIdentifier</key> | ||||
|                 <string>uw77j35x4d.skadnetwork</string> | ||||
|             </dict> | ||||
|             <dict> | ||||
|                 <key>SKAdNetworkIdentifier</key> | ||||
|                 <string>pwa73g5rt2.skadnetwork</string> | ||||
|             </dict> | ||||
|             <dict> | ||||
|                 <key>SKAdNetworkIdentifier</key> | ||||
|                 <string>mlmmfzh3r3.skadnetwork</string> | ||||
|             </dict> | ||||
|             <dict> | ||||
|                 <key>SKAdNetworkIdentifier</key> | ||||
|                 <string>578prtvx9j.skadnetwork</string> | ||||
|             </dict> | ||||
|             <dict> | ||||
|                 <key>SKAdNetworkIdentifier</key> | ||||
|                 <string>4dzt52r2t5.skadnetwork</string> | ||||
|             </dict> | ||||
|             <dict> | ||||
|                 <key>SKAdNetworkIdentifier</key> | ||||
|                 <string>e5fvkxwrpn.skadnetwork</string> | ||||
|             </dict> | ||||
|             <dict> | ||||
|                 <key>SKAdNetworkIdentifier</key> | ||||
|                 <string>8c4e2ghe7u.skadnetwork</string> | ||||
|             </dict> | ||||
|             <dict> | ||||
|                 <key>SKAdNetworkIdentifier</key> | ||||
|                 <string>zq492l623r.skadnetwork</string> | ||||
|             </dict> | ||||
|             <dict> | ||||
|                 <key>SKAdNetworkIdentifier</key> | ||||
|                 <string>3rd42ekr43.skadnetwork</string> | ||||
|             </dict> | ||||
|             <dict> | ||||
|                 <key>SKAdNetworkIdentifier</key> | ||||
|                 <string>3qcr597p9d.skadnetwork</string> | ||||
|             </dict> | ||||
|         </array> | ||||
|     </dict> | ||||
| <dict> | ||||
| 	<key>FirebaseAppDelegateProxyEnabled</key> | ||||
| 	<false/> | ||||
| 	<key>GADApplicationIdentifier</key> | ||||
| 	<string>ca-app-pub-1299501215847962~3447556960</string> | ||||
| 	<key>NSAppTransportSecurity</key> | ||||
| 	<dict> | ||||
| 		<key>NSAllowsArbitraryLoads</key> | ||||
| 		<true/> | ||||
| 	</dict> | ||||
| 	<key>SKAdNetworkItems</key> | ||||
| 	<array> | ||||
| 		<dict> | ||||
| 			<key>SKAdNetworkIdentifier</key> | ||||
| 			<string>cstr6suwn9.skadnetwork</string> | ||||
| 		</dict> | ||||
| 		<dict> | ||||
| 			<key>SKAdNetworkIdentifier</key> | ||||
| 			<string>4fzdc2evr5.skadnetwork</string> | ||||
| 		</dict> | ||||
| 		<dict> | ||||
| 			<key>SKAdNetworkIdentifier</key> | ||||
| 			<string>4pfyvq9l8r.skadnetwork</string> | ||||
| 		</dict> | ||||
| 		<dict> | ||||
| 			<key>SKAdNetworkIdentifier</key> | ||||
| 			<string>2fnua5tdw4.skadnetwork</string> | ||||
| 		</dict> | ||||
| 		<dict> | ||||
| 			<key>SKAdNetworkIdentifier</key> | ||||
| 			<string>ydx93a7ass.skadnetwork</string> | ||||
| 		</dict> | ||||
| 		<dict> | ||||
| 			<key>SKAdNetworkIdentifier</key> | ||||
| 			<string>5a6flpkh64.skadnetwork</string> | ||||
| 		</dict> | ||||
| 		<dict> | ||||
| 			<key>SKAdNetworkIdentifier</key> | ||||
| 			<string>p78axxw29g.skadnetwork</string> | ||||
| 		</dict> | ||||
| 		<dict> | ||||
| 			<key>SKAdNetworkIdentifier</key> | ||||
| 			<string>v72qych5uu.skadnetwork</string> | ||||
| 		</dict> | ||||
| 		<dict> | ||||
| 			<key>SKAdNetworkIdentifier</key> | ||||
| 			<string>ludvb6z3bs.skadnetwork</string> | ||||
| 		</dict> | ||||
| 		<dict> | ||||
| 			<key>SKAdNetworkIdentifier</key> | ||||
| 			<string>cp8zw746q7.skadnetwork</string> | ||||
| 		</dict> | ||||
| 		<dict> | ||||
| 			<key>SKAdNetworkIdentifier</key> | ||||
| 			<string>3sh42y64q3.skadnetwork</string> | ||||
| 		</dict> | ||||
| 		<dict> | ||||
| 			<key>SKAdNetworkIdentifier</key> | ||||
| 			<string>c6k4g5qg8m.skadnetwork</string> | ||||
| 		</dict> | ||||
| 		<dict> | ||||
| 			<key>SKAdNetworkIdentifier</key> | ||||
| 			<string>s39g8k73mm.skadnetwork</string> | ||||
| 		</dict> | ||||
| 		<dict> | ||||
| 			<key>SKAdNetworkIdentifier</key> | ||||
| 			<string>3qy4746246.skadnetwork</string> | ||||
| 		</dict> | ||||
| 		<dict> | ||||
| 			<key>SKAdNetworkIdentifier</key> | ||||
| 			<string>f38h382jlk.skadnetwork</string> | ||||
| 		</dict> | ||||
| 		<dict> | ||||
| 			<key>SKAdNetworkIdentifier</key> | ||||
| 			<string>hs6bdukanm.skadnetwork</string> | ||||
| 		</dict> | ||||
| 		<dict> | ||||
| 			<key>SKAdNetworkIdentifier</key> | ||||
| 			<string>v4nxqhlyqp.skadnetwork</string> | ||||
| 		</dict> | ||||
| 		<dict> | ||||
| 			<key>SKAdNetworkIdentifier</key> | ||||
| 			<string>wzmmz9fp6w.skadnetwork</string> | ||||
| 		</dict> | ||||
| 		<dict> | ||||
| 			<key>SKAdNetworkIdentifier</key> | ||||
| 			<string>yclnxrl5pm.skadnetwork</string> | ||||
| 		</dict> | ||||
| 		<dict> | ||||
| 			<key>SKAdNetworkIdentifier</key> | ||||
| 			<string>t38b2kh725.skadnetwork</string> | ||||
| 		</dict> | ||||
| 		<dict> | ||||
| 			<key>SKAdNetworkIdentifier</key> | ||||
| 			<string>7ug5zh24hu.skadnetwork</string> | ||||
| 		</dict> | ||||
| 		<dict> | ||||
| 			<key>SKAdNetworkIdentifier</key> | ||||
| 			<string>gta9lk7p23.skadnetwork</string> | ||||
| 		</dict> | ||||
| 		<dict> | ||||
| 			<key>SKAdNetworkIdentifier</key> | ||||
| 			<string>vutu7akeur.skadnetwork</string> | ||||
| 		</dict> | ||||
| 		<dict> | ||||
| 			<key>SKAdNetworkIdentifier</key> | ||||
| 			<string>y5ghdn5j9k.skadnetwork</string> | ||||
| 		</dict> | ||||
| 		<dict> | ||||
| 			<key>SKAdNetworkIdentifier</key> | ||||
| 			<string>n6fk4nfna4.skadnetwork</string> | ||||
| 		</dict> | ||||
| 		<dict> | ||||
| 			<key>SKAdNetworkIdentifier</key> | ||||
| 			<string>v9wttpbfk9.skadnetwork</string> | ||||
| 		</dict> | ||||
| 		<dict> | ||||
| 			<key>SKAdNetworkIdentifier</key> | ||||
| 			<string>n38lu8286q.skadnetwork</string> | ||||
| 		</dict> | ||||
| 		<dict> | ||||
| 			<key>SKAdNetworkIdentifier</key> | ||||
| 			<string>47vhws6wlr.skadnetwork</string> | ||||
| 		</dict> | ||||
| 		<dict> | ||||
| 			<key>SKAdNetworkIdentifier</key> | ||||
| 			<string>kbd757ywx3.skadnetwork</string> | ||||
| 		</dict> | ||||
| 		<dict> | ||||
| 			<key>SKAdNetworkIdentifier</key> | ||||
| 			<string>9t245vhmpl.skadnetwork</string> | ||||
| 		</dict> | ||||
| 		<dict> | ||||
| 			<key>SKAdNetworkIdentifier</key> | ||||
| 			<string>eh6m2bh4zr.skadnetwork</string> | ||||
| 		</dict> | ||||
| 		<dict> | ||||
| 			<key>SKAdNetworkIdentifier</key> | ||||
| 			<string>a2p9lx4jpn.skadnetwork</string> | ||||
| 		</dict> | ||||
| 		<dict> | ||||
| 			<key>SKAdNetworkIdentifier</key> | ||||
| 			<string>22mmun2rn5.skadnetwork</string> | ||||
| 		</dict> | ||||
| 		<dict> | ||||
| 			<key>SKAdNetworkIdentifier</key> | ||||
| 			<string>4468km3ulz.skadnetwork</string> | ||||
| 		</dict> | ||||
| 		<dict> | ||||
| 			<key>SKAdNetworkIdentifier</key> | ||||
| 			<string>2u9pt9hc89.skadnetwork</string> | ||||
| 		</dict> | ||||
| 		<dict> | ||||
| 			<key>SKAdNetworkIdentifier</key> | ||||
| 			<string>8s468mfl3y.skadnetwork</string> | ||||
| 		</dict> | ||||
| 		<dict> | ||||
| 			<key>SKAdNetworkIdentifier</key> | ||||
| 			<string>klf5c3l5u5.skadnetwork</string> | ||||
| 		</dict> | ||||
| 		<dict> | ||||
| 			<key>SKAdNetworkIdentifier</key> | ||||
| 			<string>ppxm28t8ap.skadnetwork</string> | ||||
| 		</dict> | ||||
| 		<dict> | ||||
| 			<key>SKAdNetworkIdentifier</key> | ||||
| 			<string>ecpz2srf59.skadnetwork</string> | ||||
| 		</dict> | ||||
| 		<dict> | ||||
| 			<key>SKAdNetworkIdentifier</key> | ||||
| 			<string>uw77j35x4d.skadnetwork</string> | ||||
| 		</dict> | ||||
| 		<dict> | ||||
| 			<key>SKAdNetworkIdentifier</key> | ||||
| 			<string>pwa73g5rt2.skadnetwork</string> | ||||
| 		</dict> | ||||
| 		<dict> | ||||
| 			<key>SKAdNetworkIdentifier</key> | ||||
| 			<string>mlmmfzh3r3.skadnetwork</string> | ||||
| 		</dict> | ||||
| 		<dict> | ||||
| 			<key>SKAdNetworkIdentifier</key> | ||||
| 			<string>578prtvx9j.skadnetwork</string> | ||||
| 		</dict> | ||||
| 		<dict> | ||||
| 			<key>SKAdNetworkIdentifier</key> | ||||
| 			<string>4dzt52r2t5.skadnetwork</string> | ||||
| 		</dict> | ||||
| 		<dict> | ||||
| 			<key>SKAdNetworkIdentifier</key> | ||||
| 			<string>e5fvkxwrpn.skadnetwork</string> | ||||
| 		</dict> | ||||
| 		<dict> | ||||
| 			<key>SKAdNetworkIdentifier</key> | ||||
| 			<string>8c4e2ghe7u.skadnetwork</string> | ||||
| 		</dict> | ||||
| 		<dict> | ||||
| 			<key>SKAdNetworkIdentifier</key> | ||||
| 			<string>zq492l623r.skadnetwork</string> | ||||
| 		</dict> | ||||
| 		<dict> | ||||
| 			<key>SKAdNetworkIdentifier</key> | ||||
| 			<string>3rd42ekr43.skadnetwork</string> | ||||
| 		</dict> | ||||
| 		<dict> | ||||
| 			<key>SKAdNetworkIdentifier</key> | ||||
| 			<string>3qcr597p9d.skadnetwork</string> | ||||
| 		</dict> | ||||
| 	</array> | ||||
| 	<key>UIAppFonts</key> | ||||
| 	<array> | ||||
| 		<string>gmarket_sans_bold.otf</string> | ||||
| 		<string>gmarket_sans_medium.otf</string> | ||||
| 		<string>gmarket_sans_light.otf</string> | ||||
| 	</array> | ||||
| 	<key>UIBackgroundModes</key> | ||||
| 	<array> | ||||
| 		<string>audio</string> | ||||
| 		<string>fetch</string> | ||||
| 		<string>remote-notification</string> | ||||
| 	</array> | ||||
| </dict> | ||||
| </plist> | ||||
|   | ||||
| @@ -46,11 +46,21 @@ final class ContentPlayerPlayManager: NSObject, ObservableObject { | ||||
|      | ||||
|     override init() { | ||||
|         self.player = AVPlayer() | ||||
|          | ||||
|         do { | ||||
|             let audioSession = AVAudioSession.sharedInstance() | ||||
|             try audioSession.setCategory(.playback, mode: .moviePlayback) | ||||
|             try audioSession.setActive(true) | ||||
|         } catch { | ||||
|             DEBUG_LOG("Audio Session 설정 실패: \(error.localizedDescription)") | ||||
|         } | ||||
|          | ||||
|         super.init() | ||||
|     } | ||||
|      | ||||
|     func setPlaylist(playlist: [AudioContentPlaylistContent]) { | ||||
|         resetPlayer() | ||||
|         self.registerRemoteControlEvents() | ||||
|         self.playlist = playlist | ||||
|         playlistManager = AudioContentPlaylistManager(playlist: playlist) | ||||
|         playNextContent() | ||||
| @@ -70,7 +80,6 @@ final class ContentPlayerPlayManager: NSObject, ObservableObject { | ||||
|             .sink { [weak self] currentTime in | ||||
|                 if !(self?.isEditing ?? false) { | ||||
|                     self?.currentTime = CMTimeGetSeconds(currentTime) | ||||
|                     MPNowPlayingInfoCenter.default().nowPlayingInfo?[MPNowPlayingInfoPropertyElapsedPlaybackTime] = self?.currentTime | ||||
|                 } | ||||
|             } | ||||
|             .store(in: &cancellables) | ||||
| @@ -110,16 +119,7 @@ final class ContentPlayerPlayManager: NSObject, ObservableObject { | ||||
|             } | ||||
|             .store(in: &cancellables) | ||||
|          | ||||
|         do { | ||||
|             let audioSession = AVAudioSession.sharedInstance() | ||||
|             try audioSession.setCategory(.playback, mode: .moviePlayback) | ||||
|             try audioSession.setActive(true) | ||||
|              | ||||
|             self.fetchAlbumArtAndUpdateNowPlayingInfo() | ||||
|             self.registerRemoteControlEvents() | ||||
|         } catch { | ||||
|             DEBUG_LOG("Audio Session 설정 실패: \(error.localizedDescription)") | ||||
|         } | ||||
|         self.fetchAlbumArtAndUpdateNowPlayingInfo() | ||||
|     } | ||||
|      | ||||
|     private func checkPlaybackStart(bufferedTime: Double, isLikelyToKeepUp: Bool) { | ||||
| @@ -138,6 +138,7 @@ final class ContentPlayerPlayManager: NSObject, ObservableObject { | ||||
|                 DEBUG_LOG("재생 중단: 버퍼링 부족 (\(bufferedTime)초)") | ||||
|             } | ||||
|         } | ||||
|         updateNowPlayingInfo() | ||||
|     } | ||||
|      | ||||
|     private func handlePlaybackEnded() { | ||||
| @@ -283,10 +284,24 @@ final class ContentPlayerPlayManager: NSObject, ObservableObject { | ||||
|         } | ||||
|     } | ||||
|      | ||||
|     private func updateNowPlayingInfo() { | ||||
|         guard var nowPlayingInfo = MPNowPlayingInfoCenter.default().nowPlayingInfo else { return } | ||||
|  | ||||
|         nowPlayingInfo[MPNowPlayingInfoPropertyElapsedPlaybackTime] = player?.currentTime().seconds | ||||
|         nowPlayingInfo[MPNowPlayingInfoPropertyPlaybackRate] = isPlaying ? 1.0 : 0.0 | ||||
|  | ||||
|         let duration = CMTimeGetSeconds(player?.currentItem?.duration ?? CMTime.zero) | ||||
|         if duration.isFinite { | ||||
|             nowPlayingInfo[MPMediaItemPropertyPlaybackDuration] = duration | ||||
|         } | ||||
|  | ||||
|         MPNowPlayingInfoCenter.default().nowPlayingInfo = nowPlayingInfo | ||||
|     } | ||||
|      | ||||
|     private func registerNowPlayingInfoCenter(with albumArtImage: UIImage?) { | ||||
|         let center = MPNowPlayingInfoCenter.default() | ||||
|         var nowPlayingInfo = [String: Any]() | ||||
|         guard let currentItem = player?.currentItem else { return } | ||||
|          | ||||
|         var nowPlayingInfo = [String: Any]() | ||||
|         nowPlayingInfo[MPMediaItemPropertyTitle] = title | ||||
|         nowPlayingInfo[MPMediaItemPropertyArtist] = nickname | ||||
|          | ||||
| @@ -296,33 +311,51 @@ final class ContentPlayerPlayManager: NSObject, ObservableObject { | ||||
|         } | ||||
|          | ||||
|         if let player = player { | ||||
|             nowPlayingInfo[MPMediaItemPropertyPlaybackDuration] = player.currentItem?.duration.seconds | ||||
|             nowPlayingInfo[MPNowPlayingInfoPropertyPlaybackRate] = player.rate | ||||
|             nowPlayingInfo[MPNowPlayingInfoPropertyElapsedPlaybackTime] = player.currentTime().seconds | ||||
|              | ||||
|             // CMTimeGetSeconds를 사용해 duration을 가져옴 | ||||
|             let duration = CMTimeGetSeconds(currentItem.duration) | ||||
|             if duration.isFinite { | ||||
|                 nowPlayingInfo[MPMediaItemPropertyPlaybackDuration] = duration | ||||
|             } | ||||
|         } | ||||
|          | ||||
|         center.nowPlayingInfo = nowPlayingInfo | ||||
|         MPNowPlayingInfoCenter.default().nowPlayingInfo = nowPlayingInfo | ||||
|     } | ||||
|      | ||||
|     private func registerRemoteControlEvents() { | ||||
|         let center = MPRemoteCommandCenter.shared() | ||||
|          | ||||
|         center.playCommand.isEnabled = true | ||||
|         center.playCommand.addTarget { [unowned self] (commandEvent) -> MPRemoteCommandHandlerStatus in | ||||
|             self.playOrPause() | ||||
|             return .success | ||||
|         } | ||||
|          | ||||
|         center.pauseCommand.isEnabled = true | ||||
|         center.pauseCommand.addTarget { [unowned self] (commandEvent) -> MPRemoteCommandHandlerStatus in | ||||
|             self.playOrPause() | ||||
|             return .success | ||||
|         } | ||||
|          | ||||
|         center.nextTrackCommand.isEnabled = true | ||||
|         center.nextTrackCommand.addTarget { [unowned self] (commandEvent) -> MPRemoteCommandHandlerStatus in | ||||
|             self.playNextContent() | ||||
|             return .success | ||||
|         } | ||||
|          | ||||
|         center.previousTrackCommand.isEnabled = true | ||||
|         center.previousTrackCommand.addTarget { [unowned self] (commandEvent) -> MPRemoteCommandHandlerStatus in | ||||
|             self.playPreviousContent() | ||||
|             return .success | ||||
|         } | ||||
|     } | ||||
|      | ||||
|     private func unRegisterRemoteControlEvents() { | ||||
|         let center = MPRemoteCommandCenter.shared() | ||||
|         center.playCommand.removeTarget(nil) | ||||
|         center.pauseCommand.removeTarget(nil) | ||||
|         center.nextTrackCommand.removeTarget(nil) | ||||
|         center.previousTrackCommand.removeTarget(nil) | ||||
|         UIApplication.shared.endReceivingRemoteControlEvents() | ||||
|     } | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Yu Sung
					Yu Sung