Skip to content

Commit

Permalink
macOS: Detach AVPlayer listeners before calling setPlayer
Browse files Browse the repository at this point in the history
  • Loading branch information
ed95 committed Nov 30, 2021
1 parent 4646689 commit fd7e4af
Showing 1 changed file with 9 additions and 11 deletions.
20 changes: 9 additions & 11 deletions modules/juce_video/native/juce_mac_Video.h
Expand Up @@ -487,13 +487,13 @@ struct VideoComponent::Pimpl : public Base
{
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];
}
}

Expand Down Expand Up @@ -626,6 +626,9 @@ struct VideoComponent::Pimpl : public Base

void setPlayer (AVPlayer* player)
{
detachPlayerStatusObserver();
detachPlaybackObserver();

#if ! JUCE_32BIT
if (useNativeControls)
[playerView setPlayer: player];
Expand All @@ -638,11 +641,6 @@ struct VideoComponent::Pimpl : public Base
attachPlayerStatusObserver();
attachPlaybackObserver();
}
else
{
detachPlayerStatusObserver();
detachPlaybackObserver();
}
}

AVPlayer* getPlayer() const
Expand Down

0 comments on commit fd7e4af

Please sign in to comment.