자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다.
- 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)
Firemonkey Android 에서 미디어(동영상) 플레이하는 방법 (XE5) - 추가 질문
2014.10.07 15:33
안녕하세요.
안드로이드에서 웹상의 동영상 파일 실행하는 권순길님의 안내를 이용하다가 생기는 문제점에 대한 질문 드립니다.
constructor TAndroidMedia10.Create(const AFileName: string; IsUrl: Boolean);
var
AudioService: JObject;
AudioManager: JAudioManager;
MaxVolume : Integer;
begin
inherited Create(AFileName);
FPlayer := TJMediaPlayer.JavaClass.init;
if IsUrl then begin
FPlayer.setDataSource(SharedActivityContext, StrToJURI(FileName)); <= 1
// Stream 재생
// FPlayer.setDataSource(TJFileInputStream.JavaClass.init(StringToJString(Filename)).getFD); <= 2
end
else
FPlayer.setDataSource(StringToJString(FileName));
FPlayer.prepare;
AudioService := SharedActivity.getSystemService(TJContext.JavaClass.AUDIO_SERVICE);
if Assigned(AudioService) then
AudioManager := TJAudioManager.Wrap((AudioService as ILocalObject).GetObjectID);
if Assigned(AudioManager) then
begin
MaxVolume := AudioManager.getStreamMaxVolume(TJAudioManager.JavaClass.STREAM_MUSIC);
FVolume := AudioManager.getStreamVolume(TJAudioManager.JavaClass.STREAM_MUSIC);
if MaxVolume > 0 then
FVolume := FVolume / MaxVolume ;
if FVolume > 1 then
FVolume := 1 ;
end;
end;
1. 웹상의 동영상 파일을 실행하기 위해 위의 <=1을 적용시키면 mp3 파일은 실행이 되지만, wmv는 prepare failed가 나면서 실행되지 않습니다. 그 이유를 알고 싶습니다.
2. 위의 스트리밍 방식의 <=2 부분의 소스를 적용시키면 Java.io.FileNotfountException:/http:/210.218.94.9-----'에러를 발생시키는데
URL부분을 보면 : http://210.218.94.9--- 가 정상적인 URL인데 에러를 발생시키는 메시지를 보면 URL부분이 /http:/210.218.94.9---로 만들어버리는 것으로 보아 URL을 변환하는 과정에서 오동작하는 것 같은데 어떻게 해결해야 스트리밍 방식으로 볼 수 있을까요?
미리 감사드립니다.
댓글 0
Firemonkey Android 에서 미디어(동영상) 플레이하는 방법 (XE5) - 추가 질문
2014.10.07 15:33
안녕하세요.
안드로이드에서 웹상의 동영상 파일 실행하는 권순길님의 안내를 이용하다가 생기는 문제점에 대한 질문 드립니다.
constructor TAndroidMedia10.Create(const AFileName: string; IsUrl: Boolean);
var
AudioService: JObject;
AudioManager: JAudioManager;
MaxVolume : Integer;
begin
inherited Create(AFileName);
FPlayer := TJMediaPlayer.JavaClass.init;
if IsUrl then begin
FPlayer.setDataSource(SharedActivityContext, StrToJURI(FileName)); <= 1
// Stream 재생
// FPlayer.setDataSource(TJFileInputStream.JavaClass.init(StringToJString(Filename)).getFD); <= 2
end
else
FPlayer.setDataSource(StringToJString(FileName));
FPlayer.prepare;
AudioService := SharedActivity.getSystemService(TJContext.JavaClass.AUDIO_SERVICE);
if Assigned(AudioService) then
AudioManager := TJAudioManager.Wrap((AudioService as ILocalObject).GetObjectID);
if Assigned(AudioManager) then
begin
MaxVolume := AudioManager.getStreamMaxVolume(TJAudioManager.JavaClass.STREAM_MUSIC);
FVolume := AudioManager.getStreamVolume(TJAudioManager.JavaClass.STREAM_MUSIC);
if MaxVolume > 0 then
FVolume := FVolume / MaxVolume ;
if FVolume > 1 then
FVolume := 1 ;
end;
end;
1. 웹상의 동영상 파일을 실행하기 위해 위의 <=1을 적용시키면 mp3 파일은 실행이 되지만, wmv는 prepare failed가 나면서 실행되지 않습니다. 그 이유를 알고 싶습니다.
2. 위의 스트리밍 방식의 <=2 부분의 소스를 적용시키면 Java.io.FileNotfountException:/http:/210.218.94.9-----'에러를 발생시키는데
URL부분을 보면 : http://210.218.94.9--- 가 정상적인 URL인데 에러를 발생시키는 메시지를 보면 URL부분이 /http:/210.218.94.9---로 만들어버리는 것으로 보아 URL을 변환하는 과정에서 오동작하는 것 같은데 어떻게 해결해야 스트리밍 방식으로 볼 수 있을까요?
미리 감사드립니다.