>

(Xamarin.Forms를 처음 사용함) Xamarin.Forms 응용 프로그램에서 .m3u8 비디오 파일을 실시간 스트리밍하고 싶습니까?

이것은 Microsoft 설명서

"No stream option is available for the VideoPlayer however, because iOS and Android do not support playing a video from a stream."

[ '동영상 소스'제목 바로 위의 단락에 있음]

가능합니까? 내 옵션은 무엇입니까?

이것은 비디오를 처음으로 재생해야 할 때 일부 라이브러리를 검색하고 Xamarin.MediaManager를 찾았지만 iOS에서 예외가 발생하고 (비디오 플레이어 초기화시) Android에서 m3u8 파일을 재생하지 않는 것입니다 ( https URL로 mp3 및 mp4 파일을 재생 중이었습니다)

그래서 Xamarin.Forms 문서

  • 이제 URL에서 m3u8 파일을 재생할 수 있습니다
  • iOS에서 http url을 재생 했음 (이전에 ATS 문제가 있었음)
  • 하지만 라이브 스트림을 재생할 수 없습니다

이것은 비디오 플레이어 데모/튜토리얼 입니다. 위에 링크 된 설명서 외에도.

XAML의 비디오 플레이어

       <video:VideoPlayer VerticalOptions="FillAndExpand"
                           HorizontalOptions="FillAndExpand"
                           BackgroundColor="Black"
                           HeightRequest="200"
                           Margin="0,0,0,0"
                           x:Name="FormsVideoPlayer"/>

소스를 설정하는 방법입니다

               FormsVideoPlayer.Source = new UriVideoSource
                {
                    Uri = url
                };
                FormsVideoPlayer.Play();


  • 답변 # 1

    해결 방법을 찾았습니다 :

    랩톱에서 라이브 스트림의 비디오 URL을 생성하여 비디오 스트림을 받고있었습니다. 내가 사용했던 서비스는 어떻게 든 PC와 바인딩 (가정)되었습니다.

    어떻게 모르겠지만 비디오는 URL이 생성 된 랩탑에서만 재생할 수있었습니다 (앱에 UWP 프로젝트를 추가 한 후 발견)

    = >>앱 자체에서 URL을 생성하기 시작하면 비디오가 작동하기 시작했습니다.

    이제 아래 코드를 사용하여 HLS 비디오에 CrossMediaManager를 사용하고 있습니다 :

           if (isHLS)
            {
                var item = await CrossMediaManager.Current.MediaExtractor.CreateMediaItem(URL);
                item.MediaType = MediaManager.Media.MediaType.Hls;
                CrossMediaManager.Current.MediaPlayer.VideoView.ShowControls = false;
                await CrossMediaManager.Current.Play(item);
            }
            else
            {
                await CrossMediaManager.Current.Play(URL);
            }
    
    

    Xaml :

    <ContentPage.Content>
        <mm:VideoView VerticalOptions="FillAndExpand"
                      HorizontalOptions="FillAndExpand"
                      BackgroundColor="Black"
                      x:Name="mmVideoView"
                      />
    </ContentPage.Content>
    
    

    누군가 비슷한 문제에 직면했을 때를 대비해서

관련 자료

  • 이전 javascript - 변수 값은 각각 전에 호출 한 후에 변경되지 않습니까?
  • 다음 excel - SUMPRODUCT ((range = {"this";"that"}) * (기타 조건))는 범위의 일부 셀이이 조건을 충족하지 않으면 해당 사항을 반환하지 않습니다