chrome.tabCapture

বর্ণনা

ট্যাব মিডিয়া স্ট্রিমগুলির সাথে ইন্টারঅ্যাক্ট করতে 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

Chrome 71+

বৈশিষ্ট্য

  • গ্রাহক ট্যাবিআইডি

    সংখ্যা ঐচ্ছিক

    ট্যাবের ঐচ্ছিক ট্যাব আইডি যা পরে getUserMedia() স্ট্রীম ব্যবহার করতে আহ্বান করবে। যদি নির্দিষ্ট করা না থাকে তাহলে ফলাফল স্ট্রীম শুধুমাত্র কলিং এক্সটেনশন দ্বারা ব্যবহার করা যেতে পারে। স্ট্রীমটি শুধুমাত্র প্রদত্ত ট্যাবের ফ্রেমের দ্বারা ব্যবহার করা যেতে পারে যার নিরাপত্তার উৎস গ্রাহক ট্যাবের উৎপত্তির সাথে মেলে। ট্যাবের উৎপত্তি অবশ্যই একটি নিরাপদ উৎস হতে হবে, যেমন HTTPS।

  • targetTabId

    সংখ্যা ঐচ্ছিক

    ট্যাবের ঐচ্ছিক ট্যাব আইডি যা ক্যাপচার করা হবে। নির্দিষ্ট না থাকলে বর্তমান সক্রিয় ট্যাবটি নির্বাচন করা হবে। শুধুমাত্র যে ট্যাবগুলির জন্য এক্সটেনশনটি activeTab অনুমতি দেওয়া হয়েছে তা লক্ষ্য ট্যাব হিসাবে ব্যবহার করা যেতে পারে।

MediaStreamConstraint

বৈশিষ্ট্য

  • বাধ্যতামূলক

    বস্তু

  • ঐচ্ছিক

    বস্তু ঐচ্ছিক

TabCaptureState

এনাম

"বিচারাধীন"

"সক্রিয়"

"বন্ধ"

"ত্রুটি"

পদ্ধতি

capture()

শুধুমাত্র অগ্রভাগ
chrome.tabCapture.capture(
  options: CaptureOptions,
  callback: function,
)

বর্তমানে সক্রিয় ট্যাবের দৃশ্যমান এলাকা ক্যাপচার করে। ক্যাপচার শুধুমাত্র বর্তমান সক্রিয় ট্যাবে শুরু করা যেতে পারে এক্সটেনশনটি চালু করার পরে, যেভাবে সক্রিয় ট্যাব কাজ করে। ট্যাবের মধ্যে পৃষ্ঠা নেভিগেশন জুড়ে ক্যাপচার রক্ষণাবেক্ষণ করা হয়, এবং ট্যাবটি বন্ধ হয়ে গেলে বা এক্সটেনশনের মাধ্যমে মিডিয়া স্ট্রীম বন্ধ হয়ে গেলে তা বন্ধ হয়ে যায়।

পরামিতি

  • ফিরে আসা মিডিয়া স্ট্রীম কনফিগার করে।

  • কলব্যাক

    ফাংশন

    callback প্যারামিটারটি এর মত দেখাচ্ছে:

    (stream: LocalMediaStream)=>void

    • প্রবাহ

      স্থানীয় মিডিয়াস্ট্রিম

getCapturedTabs()

প্রতিশ্রুতি
chrome.tabCapture.getCapturedTabs(
  callback?: function,
)

ট্যাবগুলির একটি তালিকা প্রদান করে যেগুলি ক্যাপচারের অনুরোধ করেছে বা ক্যাপচার করা হচ্ছে, যেমন স্থিতি!= থামানো এবং স্থিতি!= ত্রুটি। এটি এক্সটেনশনগুলিকে ব্যবহারকারীকে জানাতে অনুমতি দেয় যে একটি বিদ্যমান ট্যাব ক্যাপচার রয়েছে যা একটি নতুন ট্যাব ক্যাপচারকে সফল হতে বাধা দেবে (বা একই ট্যাবের জন্য অপ্রয়োজনীয় অনুরোধগুলি প্রতিরোধ করতে)।

পরামিতি

রিটার্নস

  • প্রতিশ্রুতি< CaptureInfo []>

    Chrome 116+

    প্রতিশ্রুতিগুলি ম্যানিফেস্ট V3 এবং পরবর্তীতে সমর্থিত, তবে পশ্চাদগামী সামঞ্জস্যের জন্য কলব্যাক প্রদান করা হয়। আপনি একই ফাংশন কলে উভয় ব্যবহার করতে পারবেন না। প্রতিশ্রুতিটি একই ধরণের সাথে সমাধান করে যা কলব্যাকে পাস করা হয়।

getMediaStreamId()

প্রতিশ্রুতি Chrome 71+
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 উপাদানগুলিকে সিঙ্কে রাখতে ট্যাবগুলির ক্যাপচার অবস্থার ট্র্যাক রাখতে দেয়৷

পরামিতি