2

Silverlight 4 から Silverlight 5 にアップグレードした後 MediaElement、自分のプレーヤーで DRM h264 ビデオを再生しようとすると、System.Exception 6028 が発生します。これは、コンピューターに既にライセンスが保存されている場合に発生します。

これは Silverlight 5.0.61118.0 で発生します。

その例外の原因を特定し、ライセンスを削除して再度取得する以外の解決策を見つけるための助けをいただければ幸いです。

編集: PC 上のすべての PlayReady ライセンスを削除しましたが、しばらくするとシステム例外が再び発生しました。良い点の 1 つは、次の例外メッセージをコピーできることです。

System.Exception: 6028 No valid simple or leaf license is available to create the decryptor

もう一つ確認しました。私のアプリがライセンスを要求している DRM サーバーは 1.5.2 バージョンです。

4

4 に答える 4

2

単なる更新です。新しい読者のために、これはSilverlight5.1.10411.0で解決されました。

Microsoftからのリリースノート:

お客様がSilverlight4からSilverlight5にアップグレードしたときに、永続的なライセンスの取得が失敗する問題を修正します。

差出人:http://www.microsoft.com/getsilverlight/locale/en-us/html/Microsoft%20Silverlight%20Release%20History.htm

于 2012-05-21T11:56:33.013 に答える
2

http://blogs.msdn.com/b/playready4/archive/2011/12/08/playready-license-acquisition-fails-after-upgrading-to-silverlight-5.aspx を確認してください

この問題を解決するには (期限切れの永続ライセンスの場合)、MediaFailed イベント ハンドラーを使用する必要があります。ハンドラーでは、エラー コードが 6028 の場合、LicenseAcquirer を使用してライセンスを取得するだけです。LicenseAcquirer は、カスタム LicenseAcquirer または SSME のデフォルトの LicenseAcquirer である可能性があります。

于 2012-01-03T12:49:25.983 に答える
1

前の回答の1つで述べたように、6028エラーコードを確認する必要があります

この問題を解決するには (期限切れの永続ライセンスの場合)、MediaFailed >event ハンドラーを使用する必要があります。ハンドラーでは、エラー コードが 6028 の場合、LicenseAcquirer > を使用してライセンスを取得するだけです。LicenseAcquirer は、カスタムの LicenseAcquirer または SSME のデフォルトの >LicenseAcquirer にすることができます。

以下の例に示すように、カスタム ライセンス アクワイアラを使用しました。

protected void OnMediaFailed(object sender, CustomEventArgs<Exception> e)
{
    if (e.Value.Message.StartsWith("6028"))
    {
        //Get Manifest Info Somehow
         ........
        //our custom acquirer initialization
        var acquirer = new ManualLicenseAcquirer(); 
        if (manifestInfo != null 
        && manifestInfo.ProtectionInfo != null
        && manifestInfo.ProtectionInfo.ProtectionHeader != null)
    {
        acquirer.AcquireLicenseCompleted += this.OnLAcquirerCompleted;
        acquirer.AcquireLicenseAsync(manifestInfo.ProtectionInfo.ProtectionHeader.ProtectionData);
    }
    else
    {
        this.ShowCustomError("Manifest info is null or protection header is null", true, true);
    }
}

private void OnLAcquirerCompleted(object sender, AcquireLicenseCompletedEventArgs e)
{
    if (e.Error != null)
    {
        this.ShowCustomError(string.Format("Server response error: {0}", e.Error), true, true);
    }
    else if (e.Cancelled)
    {
        this.ShowCustomError(string.Format("Manual license acquier request was cancelled"), true, true, true);
    }
    else
    {
        this.Play();    
    }
}
于 2012-01-31T12:10:11.657 に答える
0

Silverlight 5 にアップグレードすると、Silverlight で使用される PlayReady インストールが頻繁に中断され、再生しようとすると意味のないエラーが発生することがわかりました。

私のために働いた修正は次のとおりです。

  1. Silverlight 5 のアンインストール
  2. 削除%ProgramData%\Microsoft\PlayReady(これにより、すべての永続ライセンスも削除されることに注意してください)
  3. 再起動。
  4. Silverlight 5 を再インストールする

一部のマシンでは、PlayReady を再び機能させるために、このプロセスを複数回繰り返す必要がありました。

于 2012-01-12T07:21:39.923 に答える