私はUWPビデオプレーヤー(MediaElementを使用)にクローズドキャプションのサポートを実装しようとしていますが、私はこのようにexampleに従っています。クローズドキャプションのエラーを解決しました。System.UnauthorizedAccessException
それは"Error resolving track due to error NetworkError System.UnauthorizedAccessException: Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))"
呼ば解決するときに、私はエラーを取得しています私はこのようにそれを行う:私はfilepickerを使用してファイルを開き、選ばれたビデオのSRT
を取得します。その後、私はそれを示します。残念ながら、何も表示されません。ここで
は私OpenButton
関数である。ここでは
private async void BtnOpenMedia_Click(object sender, RoutedEventArgs e)
{
FileOpenPicker filePicker = new FileOpenPicker();
filePicker.ViewMode = PickerViewMode.Thumbnail;
filePicker.SuggestedStartLocation = PickerLocationId.VideosLibrary;
filePicker.FileTypeFilter.Add(".mp4");
filePicker.FileTypeFilter.Add(".wmv");
filePicker.FileTypeFilter.Add(".mpg");
filePicker.FileTypeFilter.Add(".mpeg");
filePicker.FileTypeFilter.Add("*");
StorageFile storageFile = await filePicker.PickSingleFileAsync();
if (storageFile != null && mElement != null)
{
string strSource = Path.GetDirectoryName(storageFile.Path) + @"\" + storageFile.DisplayName + ".srt";
var mediaSource = MediaSource.CreateFromStorageFile(storageFile);
var ttsStream = TimedTextSource.CreateFromUri(new Uri(strSource));
ttsStream.Resolved += TtsStream_Resolved;
mediaSource.ExternalTimedTextSources.Add(ttsStream);
var mediaPlayback = new MediaPlaybackItem(mediaSource);
mElement.SetPlaybackSource(mediaPlayback);
}
}
は、私の決意機能である:
private void TtsStream_Resolved(TimedTextSource sender, TimedTextSourceResolveResultEventArgs args)
{
if (args.Error != null)
{
var ignoreAwaitWarning = Dispatcher.RunAsync(CoreDispatcherPriority.Normal, async() =>
{
var msg = new MessageDialog("Error resolving track " + " due to error " + args.Error.ErrorCode + " " + args.Error.ExtendedError);
await msg.ShowAsync();
});
return;
}
}
PS:これは重複されているかどうか、私は知らない私は「なぜまた、それはです私はこれを追加していますが、私は研究をして何も見つけませんでした。 MediaElementのフレームをプレビューする方法たとえば、YouTubeのようにスライダーでサムネイルをプレビューすることができますが、これを達成する方法はわかりません。ありがとうございます!
ありがとうございました!あなたの修正によって解決されます!ちなみに、なぜMicrosoftはサンプルから、パスからファイルにアクセスできないと言いますか?文字通り、私はできないことを知りませんでした。ビデオライブラリーにいなくてもアクセスできますか?あなたが知っているので、私は別のパスで映画を開いた場合、プレイヤーはユーザーの助けなしにそれを見つけることができるはずです。それを行う方法はありますか?そして2番目の部分のおかげで、私はそれで何ができるかを見ていきます! –
@AhmedSabry、私はちょうど同僚と話しましたが、文書は不明です。これはバグかもしれませんが、確かではありませんが、さらに調査する必要があります。 UWPアプリはサンドボックスで動作するため、ユーザーがこれを処理できるようにfilepickerを使用しない限り、コード内でアクセスできないフォルダにアクセスする方法はありません。 –
さて、FilePickerを使用してキャプションを追加しましたが、mediaplaybackソースに触れることなくキャプションをMediaElementに設定するにはどうすればよいですか? 私はビデオを再生しています。次に、私はこのビデオにFilePickerを使ってクローズドキャプションを割り当てたいと思っています(私は既にビデオを選んでいました)、SetPlaybackSourceを使わずにExternalTimedTextSourcesを設定する方法がないようです。 –