এখানে আমি অন্তর্ভুক্ত করছি কীভাবে আমার এক বন্ধু নেক্সাস ওয়ান এইচটিএমএলে ভিডিও প্রদর্শনের সমস্যাটি সমাধান করেছেন:
আমি কখনই ভিডিও প্লে ইনলাইন করতে সক্ষম হইনি। আসলে ইন্টারনেটের অনেক লোক স্পষ্টভাবে উল্লেখ করে যে এইচটিএমএল-এ ইনলাইন ভিডিও প্লে হানিকম্বের পর থেকেই সমর্থিত, এবং আমরা ফ্রিও এবং জিঞ্জারব্রেডের সাথে লড়াই করছি ... এছাড়াও ছোট ফোনের জন্য আমি মনে করি যে পূর্ণ স্ক্রিন খেলা খুব স্বাভাবিক - অন্যথায় এতটা দৃশ্যমান নয় । তাই লক্ষ্যটি ছিল ভিডিওটি পুরো স্ক্রিনে উন্মুক্ত করা। যাইহোক, এই থ্রেডে প্রস্তাবিত সমাধানগুলি আমাদের পক্ষে কার্যকর হয়নি - উপাদানটিতে ক্লিক করা কিছুই ট্রিগার করে না। তদতিরিক্ত ভিডিও নিয়ন্ত্রণগুলি প্রদর্শিত হয়েছিল, তবে কোনও পোস্টার প্রদর্শিত হয়নি যাতে ব্যবহারকারীর অভিজ্ঞতা এমনকি অতিশয় ছিল। সুতরাং তিনি যা করেছিলেন তা হ'ল:
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");
activity.startActivity(intent);
}
}
তারপরে এইচটিএমএলটিতে তিনি ভিডিও ট্যাগটি ভিডিওর কাজ করতে ব্যর্থ হতে থাকেন। সুতরাং, অবশেষে তিনি 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>
আমি বুঝতে পারি এটি নিখুঁতভাবে এইচটিএমএল সমাধান নয়, তবে আমরা নেক্সাস ওয়ান ধরণের ফোনের জন্য সবচেয়ে ভাল করতে পেরেছি। এই সমাধানের সমস্ত ক্রেডিট দিমিতর জ্লাটকভ দিমিট্রভের কাছে যায়।