에 따르면 :
http://developer.android.com/sdk/android-2.0-highlights.html
Android 2.0은 HTML5 동영상 요소를 지원해야합니다. Motorola Droid를 사용하여이 작업을 수행 할 수 없었고 HTML5 비디오 예제 페이지에서 비디오를 성공적으로 볼 수 없었습니다. 현재 QuickTime 또는 Flash에 대한 지원이 없기 때문에 웹 페이지에 mp4 비디오를 포함 할 수있는 유일한 방법입니다. 누구든지 이것으로 운이 좋았습니까?
답변
나는 이것으로 몇 가지 실험을했고, 세 가지가 필요하다고 말할 수 있습니다.
- 비디오를 호출 할 때 type 속성을 사용하면 안됩니다 .
- video.play ()를 수동으로 호출해야합니다.
- 동영상은 매우 엄격한 매개 변수로 인코딩되어야합니다. ‘웹 최적화’버튼이 선택된 상태에서 Handbrake의 iPhone 설정을 사용하면 일반적으로 트릭을 수행합니다.
이 페이지에서 데모를보십시오 : http://broken-links.com/tests/video/
이것은 AFAIK, 모든 비디오 지원 데스크톱 브라우저, iPhone 및 Android에서 작동합니다.
마크 업은 다음과 같습니다.
<video id="video" autobuffer height="240" width="360">
<source src="BigBuck.m4v">
<source src="BigBuck.webm" type="video/webm">
<source src="BigBuck.theora.ogv" type="video/ogg">
</video>
그리고 JS에 다음이 있습니다.
var video = document.getElementById('video');
video.addEventListener('click',function(){
video.play();
},false);
나는 이것을 Samsung Galaxy S에서 테스트했으며 잘 작동합니다.
답변
Roman의 대답은 나에게 잘 맞았거나 적어도 내가 기대했던 것을 나에게주었습니다. 휴대폰의 기본 응용 프로그램에서 비디오를 여는 것은 iPhone이하는 것과 똑같습니다.
관점을 조정하고 비디오가 자체 응용 프로그램에서 전체 화면으로 재생되기를 기대하고이를 위해 코딩하는 것이 좋습니다. 동영상을 클릭하는 것만으로는 iPhone과 같은 방식으로 재생되기에 충분하지 않지만, 동영상을 시작하는 데 onclick 속성 만 필요하므로 세상의 끝이 아닙니다.
저의 조언 인 FWIW는 포스터 이미지를 사용하고 동영상이 재생 될 것임을 분명히하는 것입니다. 저는 현재 정확히 그렇게하는 프로젝트를 진행하고 있으며, 고객들은 그것에 만족하고 있습니다. 또한 그들은 웹 앱의 안드로이드 버전을 무료로 받고 있다는 것입니다. iPhone 웹 앱.
예시를 위해 작동하는 Android 동영상 태그가 아래에 있습니다. 멋지고 간단합니다.
<video src="video/placeholder.m4v" poster="video/placeholder.jpg" onclick="this.play();"/>
답변
여기에 내 친구가 Nexus One에서 HTML로 동영상을 표시하는 문제를 해결 한 방법을 포함합니다.
비디오를 인라인으로 재생할 수 없었습니다. 사실 인터넷상의 많은 사람들이 Honeycomb 이후로 HTML에서 인라인 비디오 재생이 지원된다는 것을 명시 적으로 언급하고 있으며, 우리는 Froyo 및 Gingerbread와 싸우고있었습니다 … 또한 작은 휴대폰의 경우 전체 화면 재생이 매우 자연 스럽다고 생각합니다. 그렇지 않으면 많이 보이지 않습니다. . 그래서 목표는 비디오를 전체 화면으로 여는 것이 었습니다. 그러나이 스레드에서 제안 된 솔루션은 우리에게 효과가 없었습니다. 요소를 클릭해도 아무것도 트리거되지 않았습니다. 또한 비디오 컨트롤이 표시되었지만 포스터가 표시되지 않아 사용자 경험이 더 이상했습니다. 그래서 그가 한 일은 다음과 같습니다.
자바 스크립트를 통해 호출 할 수 있도록 네이티브 코드를 HTML에 노출합니다.
JavaScriptInterface jsInterface = new JavaScriptInterface(this);
webView.getSettings().setJavaScriptEnabled(true);
webView.addJavascriptInterface(jsInterface, "JSInterface");
코드 자체에는 비디오를 재생하기 위해 네이티브 액티비티를 호출하는 함수가 있습니다.
public class JavaScriptInterface {
private Activity activity;
public JavaScriptInterface(Activity activiy) {
this.activity = activiy;
}
public void startVideo(String videoAddress){
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.parse(videoAddress), "video/3gpp"); // The Mime type can actually be determined from the file
activity.startActivity(intent);
}
}
그런 다음 HTML 자체에서 그는 비디오 태그가 비디오를 재생하는 데 계속 실패했습니다. 결국 그는 onclick
비디오 의 이벤트 를 덮어 쓰기로 결정 하여 실제 플레이를 수행하게했습니다. 이것은 포스터가 표시되지 않은 것을 제외하고는 거의 그에게 효과적이었습니다. 여기에 가장 이상한 부분이 있습니다. 그는 태그 ERROR/AndroidRuntime(7391): java.lang.RuntimeException: Null or empty value for header "Host"
의 poster
속성을 설정할 때마다 계속 수신했습니다 . 마침내 그는 매우 이상한 문제를 발견 했습니다. 태그에 source
하위 태그를 유지 video
했지만 사용한 적이 없다는 것이 밝혀졌습니다 . 이상하게도 이것이 문제를 일으켰습니다. 이제 video
섹션에 대한 그의 정의를 참조하십시오 .
<video width="320" height="240" controls="controls" poster='poster.gif' onclick="playVideo('file:///sdcard/test.3gp');" >
Your browser does not support the video tag.
</video>
물론 페이지 헤드에 자바 스크립트 함수의 정의를 추가해야합니다.
<script>
function playVideo(video){
window.JSInterface.startVideo(video);
}
</script>
이것이 순전히 HTML 솔루션이 아니라는 것을 알고 있지만 Nexus One 유형의 휴대 전화에서 할 수있는 최선의 방법입니다. 이 솔루션에 대한 모든 크레딧은 Dimitar Zlatkov Dimitrov에게 전달됩니다.
답변
수동으로 호출 video.play()
하면 작동합니다.
<!DOCTYPE html>
<html>
<head>
<script>
function init() {
enableVideoClicks();
}
function enableVideoClicks() {
var videos = document.getElementsByTagName('video') || [];
for (var i = 0; i < videos.length; i++) {
// TODO: use attachEvent in IE
videos[i].addEventListener('click', function(videoNode) {
return function() {
videoNode.play();
};
}(videos[i]));
}
}
</script>
</head>
<body onload="init()">
<video src="sample.mp4" width="400" height="300" controls></video>
...
</body>
</html>
답변
내 안드로이드 2.2 브라우저를 html5test.com 으로 가리키면 비디오 요소가 지원되지만 나열된 비디오 코덱 중 어느 것도 비디오 요소를 지원하는 것이 조금 무의미 해 보이지만 코덱은 없습니까 ??? 테스트 페이지에 문제가없는 한
그러나 오디오 요소와 동일한 종류의 상황을 발견했습니다. 요소는 지원되지만 오디오 형식은 없습니다. 여길 봐:
http://textopiablog.wordpress.com/2010/06/25/browser-support-for-html5-audio/
답변
비디오를 제대로 인코딩 할 때까지 아무것도 효과가 없었습니다. 올바른 핸드 브레이크 설정을 위해이 가이드를 사용해보십시오 :
http://forum.handbrake.fr/viewtopic.php?f=7&t=9694
답변
다음과 같이 장치 용으로 특별히 비디오를 인코딩해야 할 수도 있습니다.
<video id="movie" width="320" height="240" autobuffer controls>
<source src="pr6.ogv" type='video/ogg; codecs="theora, vorbis"'>
<source src="pr6.mp4" type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"'>
<source src="pr6.mp4" type='video/mp4; codecs="some droid video codec, some droid audio codec"'>
</video>
여기에서 작업 한 인코딩 구성의 몇 가지 예가 있습니다.