2017-12-19 11 views
0

私はUWPアプリケーション用に書かれたライブラリを開発中です。マイライブラリが設定している:UWPのMediaSourceのURIプロパティを処理するためのアダプティブコード

  • 対象バージョン:16299
  • 分バージョン:14393

を私はそこMediaPlayerElementを持っており、動画のURLをチェックしたいと思います。 プロパティが15063に導入されました。

MediaSourceに関連付けられたURIを取得します。
デバイス・ファミリ:Windowsの10クリエーターアップデート(導入v10.0.15063.0) API契約:Windows.Foundation.UniversalApiContract(導入V4)

私はこのようなものを使用することができることを考えた:

if (ApiInformation.IsPropertyPresent(typeof(MediaSource).FullName, "Uri")) 
{ 
    return (element.MediaPlayer.Source as MediaPlaybackItem)?.Source?.Uri.AbsoluteUri; 
} 

は、それは実際に動作しますが、私は私が持っているアプリケーションに私のライブラリが含まれている場合に問題があることが判明:

  • ターゲットと分バージョン1439を3.

スロー例外:「可能System.Uri Windows.Media.Core.MediaSource:中..............見つからない
メソッド 'System.MissingMethodException' .get_Uri() '。

try/catchこの場合は役に立ちません。

私は何ができるのですか?

答えて

1

URIプロパティにアクセスするコードは、ifステートメント内から呼び出す個別のメソッドに入れてください。これにより、メソッドの例外が見つからないようにする必要があります。これは、.NETがメソッドごとに動的にメソッド呼び出しを解決する方法が原因です。 14393では、それは決して新しいメソッドには及ばないので、例外はありません。

+0

絶対に素晴らしいです!ありがとうございました。実際には例外が発生しますが、この場合try/catchによってキャッチされます。 –

0

あなたはそのために何もできません。唯一の解決策は、あなたのアプリの最小バージョンを15063に設定し、Windows 10のバージョンを最小バージョン以上に更新するようにターゲットデバイスに依頼することです。私は自分の既存のアプリでMediaPlayerElementを使用しており、最小バージョンを15063に設定することを余儀なくされました。try catchを使用して、これらの種類のエラーをキャッチすることはできません。

+0

「安全な」方法は、「Uri」プロパティを取得するためにリフレクションを使用することだけです。 –

関連する問題