2012-02-20 6 views
1

AV Foundation APIを使用するビデオプレーヤーに問題があり、HTTPプログレッシブダウンロードでクリップを再生します。 AVPlayerがリリースされても、私はまだビデオクリップをダウンロードしています(HTTPトラフィックスニファを介して観察されます)。AVPlayerインスタンスを公開した後でもビデオがダウンロードされます

私のプレイヤーがそのように初期化されます。

m_player = new AVPlayer(); 
m_playerLayer = new AVPlayerLayer(); 
m_playerLayer.Player = m_player; 

その後、私はビデオのURLがある場合:I'amは資産が再生可能であることが通知

m_url = new NSUrl (...); 
m_asset = new AVAsset(m_url); 
m_asset.AddObserver(this, new NSString ("playable"), NSKeyValueObservingOptions.Initial | NSKeyValueObservingOptions.New, AVPlayerAssetObservationContext); 

、私はをAVPlayerItemを作成する:

m_playerItem = new AVPlayerItem(m_asset); 
if (m_player.CurrentItem != m_playerItem) 
{ 
    m_player.ReplaceCurrentItemWithPlayerItem (m_playerItem);  
} 

私のビデオは問題なく再生されています。次に、戻るボタンを押すと、Destroy()メソッドを呼び出すメカニズムがあります。ここで私は私のプレーヤーがうまく解放されることを確認するために多くのことを試してみました:

if(m_player != null) 
    { 
    m_player.Pause(); 
    m_player.Dispose(); 
    m_player = null; 
    } 

    if(m_playerLayer != null) 
    { 
    m_playerLayer.Dispose(); 
    m_playerLayer = null; 
    } 


    if(m_playerItem != null) 
    { 
    m_playerItem.Dispose(); 
    m_playerItem = null; 
    } 

    if(m_asset != null) 
    { 
    m_asset.CancelLoading(); 
    m_asset.RemoveObserver(this, new NSString("playable")); 
    m_asset.Dispose(); 
    m_asset = null; 

    } 

    if(m_url != null) 
    { 
    m_url.Dispose(); 
    m_url = null; 
    } 

私は、デバッガで私のアプリをテストし、確認のために、I'amは、このコードに陥ります。私のオブジェクトはよくリリースされているようですが、アプリケーションがまだビデオURLをダウンロードしていることを確認してください。 init/releaseコードで何か問題がありますか?

ありがとうございました!

+0

私が見つけた回避策は、m_player.ReplaceCurrentItemWithPlayerItem(新しいAVPlayerItem())を追加することです。ビデオのダウンロードが中断されます。 – nicolas

+0

あなたはあなたのコメントを答えに移動し、これを答えたものとしてマークする必要があります。テストケースを使ってhttp://bugzilla.xamarin.comでバグレポートを開くことを検討する必要があります。これは、少なくともドキュメント化されていなければならないし、*多分* APIでもっと簡単にできることがあるからです)。 – poupou

+0

回避策をここに入れれば十分です:-) – nicolas

答えて

2

私が見つけたこの問題を回避するには、破壊()コード

m_player.ReplaceCurrentItemWithPlayerItem(new AVPlayerItem()); 

ビデオのダウンロードは、その後中断された中で、この行を追加することです。

関連する問題