자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다.
- 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)
Firemonkey 안드로이드_Media Player 재생 완료 후 앱 화면 문제
2014.04.05 01:30
문제 발생 순서는 다음과 같습니다.
1. 안드로이드 앱 화면을 띄운다.
2. 앱 화면에서 동영상 플레이어를 구동한다.
3. 폰의 화면을 세로 -> 가로 방향으로 변경한다.
4. 동영상 플레이어를 종료한다.
5. 원래 앱 화면의 1/2 정도가 짤린 상태로 표시된다. ==> 이 부분이 문제.
. 앱 화면에서 EditBox가 있어서 한/영 입력 창을 보여줄 수 있습니다.
. 짤리는 화면을 보면 한/영 입력 창의 크기와 관련이 있는 것으로 예상됩니다.
코드의 문제인지 아니면 Firemonkey의 문제인지 모르겠네요.
참고로, 동영상 플레이어를 호출하는 코드는 아래와 같습니다.
procedure TMainForm.CallPlayer(csURI: String);
var
Intent: JIntent;
begin
Intent := TJIntent.Create;
Intent := TJIntent.JavaClass.parseUri(StringToJString(csURI), 1); // 1 = URI_INTENT_SCHEME
SharedActivity.startActivity(Intent);
end;
댓글 6
-
Humphery
2014.04.08 22:43
-
godkdi
2014.04.10 08:09
간단한 소스코드를 첨부해서 올려볼게요.
코드를 디버깅해 본 결과, 델파이 버그로 판단됩니다.
빠른 수정이 필요할 것 같습니다.
- 델파이 앱 화면이 top인 경우에는 화면 전환이 이루어지면 화면 갱신에 문제가 없습니다.
- 델파이 앱에서 동영상과 같이 별도의 Intent를 호출한 후 화면 전환(가로->세로, 세로->가로)이 발생하는 경우가 문제입니다..
. 동영상 재생 중에 화면 전환을 합니다.
. 동영상 재생이 완료되고, 델파이 앱으로 화면이 복귀됩니다.
. 델파이 앱에서 화면 전환을 감지합니다.
. 이 때, 감지된 화면 상태값을 보면 이전 화면에 대한 값을 가지고 있습니다. 예) 현재 가로화면이지만 세로화면 값을 가짐.
. resize 이벤트에서 강제로 화면 크기를 조정해도 먹히지가 않습니다.
강제로 화면 크기를 조정할 수 없도록 코드가 된 것으로 파악됩니다.
-
godkdi
2014.04.14 09:17
2가지 경우를 테스트해 보았습니다. - 폰 내부에 저장된 동영상을 재생하는 경우 ==> 이 경우가 위와 같은 장애 현상 발생 - 외부 웹 서버의 동영상을 재생하는 경우 ==> 화면 갱신에 문제가 없이 정상 동작 간단한 샘플을 첨부합니다.
1. 문제가 발생하는 코드의 예: 폰 내부의 동영상 재생 Intent := TJIntent.Create; Intent.setAction(TJIntent.JavaClass.ACTION_VIEW); Intent.setDataAndType( TJnet_Uri.JavaClass.parse(StringToJString('/storage/sdcard0/DCIM/Camera/20130309_185340.mp4')), StringToJString('video/*')); SharedActivity.startActivity(Intent);
2. 외부 웹 서버의 동영상을 재생하는 경우 Intent := TJIntent.Create; Intent.setAction(TJIntent.JavaClass.ACTION_VIEW); Intent.setData(StrToJURI('http://www.youtube.com/watch?v=y6Sxv-sUYtM')); SharedActivity.startActivity(Intent);
-
godkdi
2014.04.15 19:13
샘플코드 첨부했습니다.
-
Humphery
2014.04.16 01:23
말씀하신대로 이슈가되는 것을 확인했습니다. 본사측에 레포팅 해보겠습니다. 감사합니다.
-
godkdi
2014.04.16 02:22
지속적인 관심 감사합니다.
빨리 수정되면 좋겠네요...
Firemonkey 안드로이드_Media Player 재생 완료 후 앱 화면 문제
2014.04.05 01:30
문제 발생 순서는 다음과 같습니다.
1. 안드로이드 앱 화면을 띄운다.
2. 앱 화면에서 동영상 플레이어를 구동한다.
3. 폰의 화면을 세로 -> 가로 방향으로 변경한다.
4. 동영상 플레이어를 종료한다.
5. 원래 앱 화면의 1/2 정도가 짤린 상태로 표시된다. ==> 이 부분이 문제.
. 앱 화면에서 EditBox가 있어서 한/영 입력 창을 보여줄 수 있습니다.
. 짤리는 화면을 보면 한/영 입력 창의 크기와 관련이 있는 것으로 예상됩니다.
코드의 문제인지 아니면 Firemonkey의 문제인지 모르겠네요.
참고로, 동영상 플레이어를 호출하는 코드는 아래와 같습니다.
procedure TMainForm.CallPlayer(csURI: String);
var
Intent: JIntent;
begin
Intent := TJIntent.Create;
Intent := TJIntent.JavaClass.parseUri(StringToJString(csURI), 1); // 1 = URI_INTENT_SCHEME
SharedActivity.startActivity(Intent);
end;
댓글 6
-
Humphery
2014.04.08 22:43
-
godkdi
2014.04.10 08:09
간단한 소스코드를 첨부해서 올려볼게요.
코드를 디버깅해 본 결과, 델파이 버그로 판단됩니다.
빠른 수정이 필요할 것 같습니다.
- 델파이 앱 화면이 top인 경우에는 화면 전환이 이루어지면 화면 갱신에 문제가 없습니다.
- 델파이 앱에서 동영상과 같이 별도의 Intent를 호출한 후 화면 전환(가로->세로, 세로->가로)이 발생하는 경우가 문제입니다..
. 동영상 재생 중에 화면 전환을 합니다.
. 동영상 재생이 완료되고, 델파이 앱으로 화면이 복귀됩니다.
. 델파이 앱에서 화면 전환을 감지합니다.
. 이 때, 감지된 화면 상태값을 보면 이전 화면에 대한 값을 가지고 있습니다. 예) 현재 가로화면이지만 세로화면 값을 가짐.
. resize 이벤트에서 강제로 화면 크기를 조정해도 먹히지가 않습니다.
강제로 화면 크기를 조정할 수 없도록 코드가 된 것으로 파악됩니다.
-
godkdi
2014.04.14 09:17
2가지 경우를 테스트해 보았습니다.- 폰 내부에 저장된 동영상을 재생하는 경우==> 이 경우가 위와 같은 장애 현상 발생- 외부 웹 서버의 동영상을 재생하는 경우==> 화면 갱신에 문제가 없이 정상 동작간단한 샘플을 첨부합니다.1. 문제가 발생하는 코드의 예: 폰 내부의 동영상 재생Intent := TJIntent.Create;Intent.setAction(TJIntent.JavaClass.ACTION_VIEW);Intent.setDataAndType( TJnet_Uri.JavaClass.parse(StringToJString('/storage/sdcard0/DCIM/Camera/20130309_185340.mp4')), StringToJString('video/*'));SharedActivity.startActivity(Intent);2. 외부 웹 서버의 동영상을 재생하는 경우Intent := TJIntent.Create;Intent.setAction(TJIntent.JavaClass.ACTION_VIEW);Intent.setData(StrToJURI('http://www.youtube.com/watch?v=y6Sxv-sUYtM'));SharedActivity.startActivity(Intent); -
godkdi
2014.04.15 19:13
샘플코드 첨부했습니다.
-
Humphery
2014.04.16 01:23
말씀하신대로 이슈가되는 것을 확인했습니다. 본사측에 레포팅 해보겠습니다. 감사합니다.
-
godkdi
2014.04.16 02:22
지속적인 관심 감사합니다.
빨리 수정되면 좋겠네요...
쉽게 재현해 볼수가 없어서 아쉽네요^^