Meet Media API: شروع سریع مشتری مرجع C++

این صفحه نحوه راه‌اندازی و اجرای یک نمونه با استفاده از پیاده‌سازی کلاینت مرجع C++ را توضیح می‌دهد. برای کسب اطلاعات بیشتر در مورد کلاینت TypeScript، به راهنمای سریع کلاینت مرجع TypeScript مراجعه کنید.

پیش‌نیازها

برای اجرای این کوئیک‌استارت، به پیش‌نیازهای زیر نیاز دارید:

فعال کردن Meet REST API

قبل از استفاده از APIهای گوگل، باید آنها را در یک پروژه گوگل کلود فعال کنید. می‌توانید یک یا چند API را در یک پروژه گوگل کلود فعال کنید.

کنسول گوگل کلود

  1. در کنسول Google Cloud، رابط برنامه‌نویسی Meet REST را فعال کنید.

    فعال کردن APIها

  2. تأیید کنید که Meet REST API را در پروژه Cloud صحیح فعال می‌کنید، سپس روی Next کلیک کنید.

  3. تأیید کنید که Meet REST API را فعال می‌کنید، سپس روی فعال کردن کلیک کنید.

رابط خط فرمان جی‌کلاود

  1. در صورت لزوم، پروژه Cloud فعلی را روی پروژه‌ای که ایجاد کرده‌اید تنظیم کنید:

    gcloud config set project PROJECT_ID

    به جای PROJECT_ID ، شناسه پروژه ابری که ایجاد کرده‌اید را قرار دهید.

  2. فعال کردن Meet REST API:

    gcloud services enable meet.googleapis.com

ساخت کلاینت C++

پیاده‌سازی C++ با Generate Ninja (GN) ساخته شده است. برای اطلاعات بیشتر، به مستندات WebRTC مراجعه کنید.

  1. یک رمز عبور از Git در گوگل ایجاد کنید و git را پیکربندی کنید.

  2. از رابط خط فرمان (CLI) خود، <samples_location> را به دایرکتوری که نمونه‌ها در آن قرار دارند تغییر دهید و دستور زیر را اجرا کنید:

    • دایرکتوری کاری شما را به دایرکتوری خانگی شما تغییر می‌دهد.
    • یک دایرکتوری در دایرکتوری خانگی شما با نام src ایجاد می‌کند.
    • دایرکتوری کاری شما را به src تغییر می‌دهد.
    • فایل https://chromium.googlesource.com/chromium/tools/depot_tools.git را از گیت در دایرکتوری src/ کپی می‌کند.
    • پوشه ~/src/depot_tools را به طور موقت به لیست مکان‌هایی که پوسته برای دستورات اجرایی جستجو می‌کند، اضافه می‌کند.
    • دایرکتوری کاری شما را به دایرکتوری cpp در محل نمونه‌های شما تغییر می‌دهد.
    • اسکریپت پوسته ./build.sh ‎ را اجرا می‌کند.
    cd ~
    mkdir src
    cd src
    git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
    export PATH=~/src/depot_tools:$PATH
    cd <samples_location>/cpp
    sh ./build.sh

تولید توکن‌های OAuth

برای اتصال به Meet Media API، برنامه شما باید از OAuth برای تولید توکن‌های دسترسی استفاده کند. برای کسب اطلاعات بیشتر در مورد دسترسی به APIهای گوگل با OAuth، به بخش «استفاده از OAuth 2.0 برای دسترسی به APIهای گوگل» مراجعه کنید.

شما می‌توانید از OAuth 2.0 Playground برای تولید توکن‌ها استفاده کنید. هنگام استفاده از playground، حتماً موارد زیر را رعایت کنید:

  • از شناسه کلاینت و اطلاعات محرمانه پروژه ابری خود استفاده کنید.
  • دامنه‌های صحیح را درخواست کنید.
  • وارد حساب گوگل خود شوید و دسترسی را بپذیرید.

پس از تکمیل، روی دکمه‌ی Exchange authorization code for tokens کلیک کنید و توکن دسترسی تولید شده را کپی کنید.

شروع یک جلسه

جلسه را با استفاده از همان حساب کاربری که برای تولید توکن OAuth استفاده کرده‌اید، شروع کنید . کد جلسه را کپی کنید. اکنون آماده اجرای نمونه‌ها هستید.

برنامه‌های نمونه

مخزن گیت‌هاب نمونه‌هایی برای دریافت رسانه و فراداده‌های شرکت‌کنندگان از یک جلسه ارائه می‌دهد.

این نمونه‌ها داده‌ها را برای مدت زمان مشخصی (پیش‌فرض ۳ ثانیه است) جمع‌آوری می‌کنند و داده‌های جمع‌آوری‌شده را در فایل‌ها می‌نویسند.

فایل‌های صوتی با فرمت PCM16 و فایل‌های ویدیویی با فرمت YUV420p هستند. این فایل‌ها را می‌توان با استفاده از کتابخانه‌ای مانند FFmpeg پخش کرد.

از آنجا که ممکن است وضوح تصویر در طول جلسه تغییر کند، نمونه‌ها وضوح تصویر را در نام فایل‌های ویدیویی لحاظ می‌کنند.

فایل‌های فراداده شرکت‌کنندگان، فایل‌های متنی قابل خواندن توسط انسان خواهند بود.

نمونه رسانه تک کاربره

نمونه رسانه تک‌کاربره یک برنامه پایه است که بر جمع‌آوری صدا و تصویر تمرکز دارد. این نمونه مشخص نمی‌کند که کدام شرکت‌کننده داده‌های صوتی و تصویری را ایجاد کرده است. بنابراین، استفاده از این نمونه در جلسه‌ای با بیش از یک شرکت‌کننده ممکن است منجر به خروجی خراب شود.

برای اجرای نمونه رسانه تک کاربره، دستور زیر را اجرا کنید:

لینوکس

$ sh ./run_multi.sh -- \
    --meeting_space_id MEETING_SPACE_ID \
    --oauth_token OAUTH_TOKEN

به طور پیش‌فرض، یک فایل صوتی در مسیر /tmp/test_output_audio.pcm ذخیره می‌شود.

از آنجا که ممکن است وضوح جریان‌های ویدیویی در طول یک جلسه تغییر کند، ممکن است چندین فایل ویدیویی ایجاد شود. نام فایل‌های ویدیویی شامل یک شمارنده افزایشی و وضوح آن فایل خواهد بود. به عنوان مثال، اگر وضوح جریان ویدیویی از 320x180 به 240x135 تغییر کند و سپس به 320x180 برگردد، فایل‌های ویدیویی زیر ایجاد می‌شوند:

  • /tmp/test_output_video_0_320x180.pcm
  • /tmp/test_output_video_1_240x135.pcm
  • /tmp/test_output_video_2_320x180.pcm

(اختیاری) استفاده از FFmpeg برای پخش فایل‌های خروجی در لینوکس و مک

از FFmpeg می‌توان برای پخش فایل‌های صوتی و تصویری ایجاد شده استفاده کرد. دستورات نمونه:

لینوکس و مک

# Audio
$ ffplay -f s16le -ar 48k -af aformat=channel_layouts=mono \
    /tmp/test_output_audio.pcm

# Video
#
# `video_size` must match the resolution in the video filename (320x180 in
# this example).
$ ffplay -f rawvideo -pixel_format yuv420p -video_size 320x180 \
    /tmp/test_output_video_0_320x180.yuv

گزینه‌ها

می‌توانید هنگام اجرای نمونه‌ها این گزینه‌ها را مشخص کنید:

گزینه توضیحات
--output_file_prefix PREFIX پیشوند فایل‌های خروجی را مشخص کنید. مقدار پیش‌فرض /tmp_test_output_ است.
--collection_duration DURATION مدت زمان جمع‌آوری رسانه را مشخص کنید. پیش‌فرض 30s است.
--join_timeout TIMEOUT مشخص کنید چه مدت طول بکشد تا برنامه به کنفرانس بپیوندد. پیش‌فرض 2m است.
--meet_api_url URL نشانی اینترنتی (URL) رابط برنامه‌نویسی کاربردی Meet Media API را مشخص کنید. پیش‌فرض آن https://meet.googleapis.com/v2alpha/ است.