Browse Source

macOS: Detach AVPlayer listeners before calling setPlayer

v6.1.6
ed 3 years ago
parent
commit
fd7e4afcda
1 changed files with 9 additions and 11 deletions
  1. +9
    -11
      modules/juce_video/native/juce_mac_Video.h

+ 9
- 11
modules/juce_video/native/juce_mac_Video.h View File

@@ -487,13 +487,13 @@ private:
{ {
if (crtp().getPlayer() != nullptr && playerStatusObserver != nullptr) if (crtp().getPlayer() != nullptr && playerStatusObserver != nullptr)
{ {
[crtp().getPlayer() removeObserver: playerStatusObserver.get()
forKeyPath: nsStringLiteral ("rate")
context: this];
[crtp().getPlayer() removeObserver: playerStatusObserver.get()
forKeyPath: nsStringLiteral ("rate")
context: this];
[crtp().getPlayer() removeObserver: playerStatusObserver.get()
forKeyPath: nsStringLiteral ("status")
context: this];
[crtp().getPlayer() removeObserver: playerStatusObserver.get()
forKeyPath: nsStringLiteral ("status")
context: this];
} }
} }
@@ -626,6 +626,9 @@ private:
void setPlayer (AVPlayer* player) void setPlayer (AVPlayer* player)
{ {
detachPlayerStatusObserver();
detachPlaybackObserver();
#if ! JUCE_32BIT #if ! JUCE_32BIT
if (useNativeControls) if (useNativeControls)
[playerView setPlayer: player]; [playerView setPlayer: player];
@@ -638,11 +641,6 @@ private:
attachPlayerStatusObserver(); attachPlayerStatusObserver();
attachPlaybackObserver(); attachPlaybackObserver();
} }
else
{
detachPlayerStatusObserver();
detachPlaybackObserver();
}
} }
AVPlayer* getPlayer() const AVPlayer* getPlayer() const


Loading…
Cancel
Save