このトピックでは、HTML5プレーヤー、Flashプレーヤー、およびObject Storage Service (OSS) を使用して実行される再生用にクロスオリジンリソース共有 (CORS) を設定する方法について説明します。
HTML5プレーヤーを使用してFLVおよびM3U8ビデオを再生するためのCORSの設定
次のエラーメッセージが返された場合は、再生用のドメイン名に対してCORSを有効にする必要があります。
「Access-Control-Allow-Origin」ヘッダは、要求されたリソースに存在しない。
したがって、オリジン 'http:// localhost:9030 'はアクセスできません。
HTTPヘッダーを追加してCORSを有効にします。 詳細については、「カスタムHTTPレスポンスヘッダーの設定」をご参照ください。
Access-Control-Allow-Origin: クロスオリジンリクエストを許可するドメイン名を指定します。 HTTPヘッダーの値を、ビデオが再生されるWebサイトのドメイン名に設定します。 たとえば、https://www.aliyundoc.com Webサイトでビデオを再生する場合は、値をhttps://www.aliyundoc.comに設定します。 次の図は、Access-Control-Allow-Originヘッダーの設定方法を示しています。
Access-Control-Allow-Methods: クロスオリジンリクエストの許可されたメソッドを指定します。 有効な値: POSTおよびGET。 POSTとGETの両方を許可する必要がある場合は、コンマ (,) で区切ります。 次の図は、Access-Control-Allow-Methodsヘッダーの設定方法を示しています。
メディアセグメントファイルのURLとM3U8ビデオのURLが異なるドメイン名に属している場合は、メディアセグメントファイルのドメイン名に前述のHTTPヘッダーを設定する必要があります。
FlashプレーヤーのCORSの設定
次の図のエラーメッセージが返された場合は、まず、インターネットコンテンツプロバイダ (ICP) のファイリングが取得されているかどうか、およびCNAMEが再生用のドメイン名にマップされているかどうかを確認する必要があります。 詳細については、「ドメイン検証」および「Alibaba Cloud DNSでのCNAMEレコードの設定」をご参照ください。
ドメイン名にICP登録があり、CNAMEにマップされている場合は、CORSを設定する必要があります。 CORSを設定するには、crossdomain.xmlという名前のクロスオリジンポリシーファイルをプレーヤーに追加します。
ビデオURLが属するドメイン名のルートディレクトリにファイルを追加します。 再生するビデオがOSSバケットに保存されている場合は、OSSバケットのルートディレクトリにファイルを追加します。
ApsaraVideo VODを使用している場合、サービスを有効化すると、ApsaraVideo VODによってcrossdomain.xmlファイルが自動的に追加されます。
次のサンプルコードは、crossdomain.xmlファイルの内容を示しています。
<?xml version="1.0" encoding="UTF-8"?>
<クロスドメインポリシー>
<allow-access-from domain="*"/>
<allow-http-request-headers-from domain="*" headers="*" secure="false"/>
</cross-domain-policy>
サムネイルのURLとビデオのURLが異なるドメイン名に属している場合は、サムネイルのドメイン名にcrossdomain.xmlファイルを追加する必要があります。
OSSに保存されているビデオを再生するためのCORSの設定
ビデオが保存されているOSSバケットにプレーヤーがアクセスする場合は、OSSバケットのCORSを設定する必要があります。 詳細については、「CORSの設定」「CORSルール」および「CORSの設定」をご参照ください。
CORSルールを作成するには、次のパラメーターを設定します。
Sources: パラメーターをアスタリスク (*) に設定します。
許可メソッド: 有効な値: GET、POST、PUT、DELETE、およびHEAD。
許可されたヘッダー: パラメーターをアスタリスク (*) に設定します。
Exposed Headers: パラメーターをETagに設定します。
このルールをすべてのCORSルールの最初として指定します。
次の図は、CORSルールを作成するためのパラメーターの設定方法を示しています。