首页 > 解决方案 > Xamarin iOS RemoveObserver AVPlayerItem

问题描述

我已经为 AVPlayerItem 设置了一个状态观察器,但我无法删除它。

 if(_aPlayer.CurrentItem != null)
 {
      _aPlayer.CurrentItem.RemoveObserver(HandleAction1, "status")
 }

 var aAsset = AVAsset.FromUrl(NSUrl.FromFilename("some_sounds.mp3"));
 var aPlayerItem = new AVPlayerItem(audioAsset);

 _aPlayer.ReplaceCurrentItemWithPlayerItem(audioPlayerItem);
 aPlayerItem.AddObserver("status", NSKeyValueObservingOptions.OldNew, HandleAction1);

收到错误“无法将方法组转换为 nsobject”

标签: c#iosxamarinavplayeravplayeritem

解决方案


AVPlayerItem.AddObserver返回一个IDisposable您需要保留引用的。

当您完成对它的可观察调用 Dispose 时。

var statusObserver = aPlayerItem.AddObserver("status", NSKeyValueObservingOptions.OldNew, HandleAction1);

statusObserver.Dispose();

推荐阅读