2017-08-02 52 views
0

我有AVPlayer,當我移動到下一頁時,播放器繼續播放,如果我添加觀察者,他們會崩潰,如果我不處理它們但我無法找到處理方法因爲ContentView在後臺沒有告訴你,所以需要處置。如何停止在頁面上播放AVPlayer Xamarin表單

請幫忙?

+0

使用頁面的'OnDisappearing'及導線上的事件到您的自定義渲染器或依賴服務,該方法停止avplayer和任何其他乾淨你需要做的。 – SushiHangover

+0

是的這種方式退出,但我想要更準確的東西。 –

+0

'更準確'? – SushiHangover

回答

1

在Xamarin表單中,ContentView無法找出託管頁面何時消失,除非它從頁面本身獲得幫助。所以,我是如何實現這種以前如下:

步驟1)在你的內容查看定義一個OnDisappearing方法

在您的內容查看定義一個名爲OnDisappearing和裏面的方法,做任何你需要的時候視圖消失 - 在你的情況下,聽起來像你需要刪除你的觀察者和處置你的球員。因此,這將是這個樣子:

public void OnDisappearing() 
{ 
    _playerPositionChangedObserver?.Dispose(); 
    _player?.Dispose(); 
} 

定義這個方法本身不會做任何事情,你需要真正的從一個地方把它叫做 - 這是該頁面出現在...

步驟2)在你的頁面

頁面會被告知時,它的出現或消失,你可以用它來再往前就到其他內容查看重寫OnDisappearing方法。在下面我的頁面的例子重寫OnDisappearing方法,然後調用我在踩我的內容查看定義1.

public class MyPage : ContentPage 
{ 
    public MyPage() 
    { 
     InitializeComponent(); 
    } 

    /// <summary> 
    /// Performs page clean-up. 
    /// </summary> 
    protected override void OnDisappearing() 
    { 
     base.OnDisappearing(); 

     contentView.OnDisappearing(); 
    } 
} 
+0

我正在嘗試類似的東西。如果這能正常工作,我會告訴你。謝謝 ! –

相關問題