TMediaPlayer에서 URL 재생 지원하기

2014.02.10 09:30

파이어몽키에서 웹상의 동영상을 재생하는 방법이 있어 소개해 드립니다.

한국 델파모에서 활동 중인 권순길님이 제공해 주셨습니다.


원글


안녕하세요. 권순길입니다.


개발하던 도중 URL 재생을 해야할 필요가 있어서 찾아 보다 보니... 

AvPlayer framework가 다 포팅은 되어 있지만 파일 네임을 받아서 TMedia를 생성하는 부분에서

URL 재생을 전혀 고려하지 않고 코딩이 되어 있더군요. Android도 역시 기능은 있는데 구현이 되어 있지 않았습니다.

그래서 간단하게 설명 드립니다.

[IOS]
 기존 코드 :   URL := TNSUrl.Wrap(TNSUrl.OCClass.fileURLWithPath(NSStr(FileName)));

 URL 지원을 위해서는 URL을 생성해줄때  URLWithString 을 이용해서 URL을 생성해주면 됩니다.
 지원 코드 :   URL := TNSUrl.Wrap(TNSUrl.OCClass.URLWithString(NSStr(AbsoluteFileName)))

[ANDROID]
 기존 코드 : FPlayer.setDataSource(StringToJString(FileName));

 URL을 지원하기 위해서는 setDataSource,  StrToJURI로 변환하여 넣어주시면 됩니다.
 지원 코드 : FPlayer.setDataSource(SharedActivityContext, StrToJURI(FileName))

추가로 ANDROID의 경우 파일디스크립터로 읽어와서 넣어줘도 되더군요.  
  // Stream 재생
  // FPlayer.setDataSource(TJFileInputStream.JavaClass.init(StringToJString(Filename)).getFD);

제가 설명이 너무 대충이라 간단히 수정해놓은 Android, Ios 코드를 같이 첨부합니다.



델파이 파이어몽키 개발자모임(권순길: 퀴트린 님) 글 - http://cafe.naver.com/delphifmx/155

저작자 표시 비영리 동일 조건 변경 허락
신고

험프리.김현수 파이어몽키

  1. Blog Icon
    김상기

    XE8에서 예제를 다운로드해서 실행을 시켰는데

    unit FMX.PSPlayer.Android;
    uses
    FMX.Messages; 부분이 빨간줄

    implementation
    uses
    FMX.PixelFormats 부분이 빨간줄
    입니다.

    해결 방법이...

  2. uses절에 빨간줄이 간것을 지우면, 코드상에 빨간줄이 생길건데요.

    코드상의 빨간줄에 커서이동 후 F1을 누르면 어떤 유닛을 추가(uses)할지 알 수 있습니다.
    해당 유닛을 uses절에 추가하면 됩니다.

  3. Blog Icon
    김상기

    감사합니다.