Xamarin.iOS MPMediaItem.AssetURL始终为null

时间:2014-10-21 14:26:02

标签: c# xamarin.ios

在Xamarin.iOS中,MPMediaItem.AssetURL始终为任何项返回null。我研究了一下,然后尝试使用Objective-C句柄。所以我用了

NSUrl url = new NSUrl(item.ValueForProperty(MPMediaItem.AssetURLProperty).Handle);     

上面的代码尝试获取AssetURL属性的objective-c句柄,然后将其转换为Managed表示。它有效!

所以,我决定研究单声道实现。 Mono将其实现为 -

return this.ValueForProperty (MPMediaItem.AssetURLProperty) as NSUrl;

我手动尝试了这个,它实际上是返回null。所以,这意味着Xamarin的实现是错误的。然而,有一件事让我感到困惑。在我运行正确的代码(第一个代码段)后,第二个剪辑不会返回null,而是正确的值。我的第一个片段可以改变第二个片段的行为有什么可能?

1 个答案:

答案 0 :(得分:0)

听起来ValueForProperty返回的句柄不是NSUrlas强制转换为null(例如,它可能是内部/私有类型)。

  

我的第一个片段可能会改变第二个片段的行为?

简单。您使用此特定句柄值创建了NSUrl。如果您尝试再次获取它,将返回相同的实例(除非它被垃圾收集),因此我们有一个托管实例代表一个本机实例。