বর্ণনা
ট্যাব মিডিয়া স্ট্রিমগুলির সাথে ইন্টারঅ্যাক্ট করতে chrome.tabCapture
API ব্যবহার করুন৷
অনুমতি
tabCapture
ধারণা এবং ব্যবহার
chrome.tabCapture API আপনাকে বর্তমান ট্যাবের ভিডিও এবং অডিও ধারণকারী একটি MediaStream
অ্যাক্সেস করতে দেয়। ব্যবহারকারী একটি এক্সটেনশন আহ্বান করার পরেই এটি কল করা যেতে পারে, যেমন এক্সটেনশনের অ্যাকশন বোতামে ক্লিক করে৷ এটি "activeTab"
অনুমতির আচরণের অনুরূপ।
সিস্টেম অডিও সংরক্ষণ করুন
যখন একটি ট্যাবের জন্য একটি MediaStream
পাওয়া যায়, তখন সেই ট্যাবের অডিও ব্যবহারকারীর কাছে আর চালানো হবে না। এটি getDisplayMedia()
ফাংশনের আচরণের অনুরূপ যখন suppressLocalAudioPlayback
পতাকা সত্য হিসাবে সেট করা হয়।
ব্যবহারকারীর কাছে অডিও বাজানো চালিয়ে যেতে, নিম্নলিখিতগুলি ব্যবহার করুন:
const output = new AudioContext();
const source = output.createMediaStreamSource(stream);
source.connect(output.destination);
এটি একটি নতুন AudioContext
তৈরি করে এবং ট্যাবের MediaStream
অডিওকে ডিফল্ট গন্তব্যে সংযুক্ত করে।
স্ট্রিম আইডি
chrome.tabCapture.getMediaStreamId()
কল করলে একটি স্ট্রিম আইডি ফিরে আসবে। পরবর্তীতে আইডি থেকে একটি MediaStream
অ্যাক্সেস করতে, নিম্নলিখিতগুলি ব্যবহার করুন:
navigator.mediaDevices.getUserMedia({
audio: {
mandatory: {
chromeMediaSource: "tab",
chromeMediaSourceId: id,
},
},
video: {
mandatory: {
chromeMediaSource: "tab",
chromeMediaSourceId: id,
},
},
});
ব্যবহার বিধিনিষেধ
getMediaStreamId()
কল করার পরে, ফেরত আসা স্ট্রিম আইডি কোথায় ব্যবহার করা যেতে পারে তার উপর বিধিনিষেধ রয়েছে:
-
consumerTabId
নির্দিষ্ট করা থাকলে, আইডিটি একটিgetUserMedia()
কলের মাধ্যমে প্রদত্ত ট্যাবের যেকোনো ফ্রেমে ব্যবহার করা যেতে পারে যার একই নিরাপত্তার উৎস রয়েছে। - যখন এটি নির্দিষ্ট করা না থাকে, তখন Chrome 116 থেকে শুরু করে, কলকারীর মতো একই রেন্ডার প্রক্রিয়ায় আইডিটি একই সুরক্ষা মূলের সাথে যেকোনো ফ্রেমে ব্যবহার করা যেতে পারে। এর মানে হল যে একজন পরিষেবা কর্মীর প্রাপ্ত একটি স্ট্রিম আইডি একটি অফস্ক্রিন নথিতে ব্যবহার করা যেতে পারে।
Chrome 116-এর আগে, যখন একটি consumerTabId
নির্দিষ্ট করা ছিল না, তখন স্ট্রীম আইডি কলারের নিরাপত্তা উৎস, রেন্ডার প্রক্রিয়া এবং রেন্ডার ফ্রেম উভয় ক্ষেত্রেই সীমাবদ্ধ ছিল।
আরও জানুন
chrome.tabCapture
API কীভাবে ব্যবহার করবেন সে সম্পর্কে আরও জানতে, অডিও রেকর্ডিং এবং স্ক্রিন ক্যাপচার দেখুন। এটি দেখায় কিভাবে tabCapture
এবং সম্পর্কিত API ব্যবহার করতে হয় সাধারণ ব্যবহারের ক্ষেত্রে একটি সংখ্যা সমাধান করতে।
প্রকারভেদ
CaptureInfo
বৈশিষ্ট্য
- ফুলস্ক্রিন
বুলিয়ান
ক্যাপচার করা ট্যাবের কোনো উপাদান ফুলস্ক্রিন মোডে আছে কিনা।
- অবস্থা
ট্যাবের নতুন ক্যাপচার স্ট্যাটাস।
- ট্যাবআইডি
সংখ্যা
ট্যাবের আইডি যার স্থিতি পরিবর্তিত হয়েছে৷
CaptureOptions
বৈশিষ্ট্য
- অডিও
বুলিয়ান ঐচ্ছিক
- অডিও সীমাবদ্ধতা
MediaStream Constraint ঐচ্ছিক
- ভিডিও
বুলিয়ান ঐচ্ছিক
- ভিডিও সীমাবদ্ধতা
MediaStream Constraint ঐচ্ছিক
GetMediaStreamOptions
বৈশিষ্ট্য
- গ্রাহক ট্যাবিআইডি
সংখ্যা ঐচ্ছিক
ট্যাবের ঐচ্ছিক ট্যাব আইডি যা পরে
getUserMedia()
স্ট্রীম ব্যবহার করতে আহ্বান করবে। যদি নির্দিষ্ট করা না থাকে তাহলে ফলাফল স্ট্রীম শুধুমাত্র কলিং এক্সটেনশন দ্বারা ব্যবহার করা যেতে পারে। স্ট্রীমটি শুধুমাত্র প্রদত্ত ট্যাবের ফ্রেমের দ্বারা ব্যবহার করা যেতে পারে যার নিরাপত্তার উৎস গ্রাহক ট্যাবের উৎপত্তির সাথে মেলে। ট্যাবের উৎপত্তি অবশ্যই একটি নিরাপদ উৎস হতে হবে, যেমন HTTPS। - targetTabId
সংখ্যা ঐচ্ছিক
ট্যাবের ঐচ্ছিক ট্যাব আইডি যা ক্যাপচার করা হবে। নির্দিষ্ট না থাকলে বর্তমান সক্রিয় ট্যাবটি নির্বাচন করা হবে। শুধুমাত্র যে ট্যাবগুলির জন্য এক্সটেনশনটি
activeTab
অনুমতি দেওয়া হয়েছে তা লক্ষ্য ট্যাব হিসাবে ব্যবহার করা যেতে পারে।
MediaStreamConstraint
বৈশিষ্ট্য
- বাধ্যতামূলক
বস্তু
- ঐচ্ছিক
বস্তু ঐচ্ছিক
TabCaptureState
এনাম
"মুলতুবি" "সক্রিয়" "থেমে গেছে" "ত্রুটি"
পদ্ধতি
capture()
chrome.tabCapture.capture(
options: CaptureOptions,
callback: function,
)
বর্তমানে সক্রিয় ট্যাবের দৃশ্যমান এলাকা ক্যাপচার করে। ক্যাপচার শুধুমাত্র বর্তমান সক্রিয় ট্যাবে শুরু করা যেতে পারে এক্সটেনশনটি চালু করার পরে, যেভাবে সক্রিয় ট্যাব কাজ করে। ট্যাবের মধ্যে পৃষ্ঠা নেভিগেশন জুড়ে ক্যাপচার রক্ষণাবেক্ষণ করা হয়, এবং ট্যাবটি বন্ধ হয়ে গেলে বা এক্সটেনশনের মাধ্যমে মিডিয়া স্ট্রীম বন্ধ হয়ে গেলে তা বন্ধ হয়ে যায়।
পরামিতি
- বিকল্প
ফিরে আসা মিডিয়া স্ট্রীম কনফিগার করে।
- কলব্যাক
ফাংশন
callback
প্যারামিটারটি এর মতো দেখাচ্ছে:(stream: LocalMediaStream) => void
- প্রবাহ
স্থানীয় মিডিয়াস্ট্রিম
getCapturedTabs()
chrome.tabCapture.getCapturedTabs(
callback?: function,
)
ট্যাবগুলির একটি তালিকা প্রদান করে যেগুলি ক্যাপচারের অনুরোধ করেছে বা ক্যাপচার করা হচ্ছে, যেমন স্থিতি!= থামানো এবং স্থিতি!= ত্রুটি। এটি এক্সটেনশনগুলিকে ব্যবহারকারীকে জানাতে দেয় যে একটি বিদ্যমান ট্যাব ক্যাপচার রয়েছে যা একটি নতুন ট্যাব ক্যাপচারকে সফল হতে বাধা দেবে (বা একই ট্যাবের জন্য অপ্রয়োজনীয় অনুরোধগুলি প্রতিরোধ করতে)।
পরামিতি
- কলব্যাক
ফাংশন ঐচ্ছিক
callback
প্যারামিটারটি এর মতো দেখাচ্ছে:(result: CaptureInfo[]) => void
- ফলাফল
রিটার্নস
প্রতিশ্রুতি< CaptureInfo []>
Chrome 116+প্রতিশ্রুতিগুলি ম্যানিফেস্ট V3 এবং পরবর্তীতে সমর্থিত, তবে পশ্চাদগামী সামঞ্জস্যের জন্য কলব্যাক প্রদান করা হয়। আপনি একই ফাংশন কলে উভয় ব্যবহার করতে পারবেন না। প্রতিশ্রুতিটি একই ধরণের সাথে সমাধান করে যা কলব্যাকে পাস করা হয়।
getMediaStreamId()
chrome.tabCapture.getMediaStreamId(
options?: GetMediaStreamOptions,
callback?: function,
)
টার্গেট ট্যাব ক্যাপচার করতে একটি স্ট্রিম আইডি তৈরি করে। chrome.tabCapture.capture() পদ্ধতির অনুরূপ, কিন্তু ভোক্তা ট্যাবে মিডিয়া স্ট্রিমের পরিবর্তে একটি মিডিয়া স্ট্রিম আইডি ফেরত দেয়।
পরামিতি
- বিকল্প
GetMediaStreamOptions ঐচ্ছিক
- কলব্যাক
ফাংশন ঐচ্ছিক
callback
প্যারামিটারটি এর মতো দেখাচ্ছে:(streamId: string) => void
- স্ট্রিমআইডি
স্ট্রিং
রিটার্নস
প্রতিশ্রুতি<string>
Chrome 116+প্রতিশ্রুতিগুলি ম্যানিফেস্ট V3 এবং পরবর্তীতে সমর্থিত, তবে পশ্চাদগামী সামঞ্জস্যের জন্য কলব্যাক প্রদান করা হয়। আপনি একই ফাংশন কলে উভয় ব্যবহার করতে পারবেন না। প্রতিশ্রুতিটি একই ধরণের সাথে সমাধান করে যা কলব্যাকে পাস করা হয়।
ঘটনা
onStatusChanged
chrome.tabCapture.onStatusChanged.addListener(
callback: function,
)
একটি ট্যাবের ক্যাপচার স্থিতি পরিবর্তিত হলে ইভেন্ট গুলি করা হয়৷ এটি এক্সটেনশন লেখকদের পৃষ্ঠা অ্যাকশনের মতো UI উপাদানগুলিকে সিঙ্কে রাখতে ট্যাবগুলির ক্যাপচার অবস্থার ট্র্যাক রাখতে দেয়৷
পরামিতি
- কলব্যাক
ফাংশন
callback
প্যারামিটারটি এর মতো দেখাচ্ছে:(info: CaptureInfo) => void
- তথ্য