2 つのMediaStreamsが等しいかどうかを判断する方法があるかどうか疑問に思っています。
「等しい」とはどういう意味ですか?
2 つのストリームが同じハードウェア ソースを使用しているかどうかを確認したいと思います (同じマイクとカメラが使用されています)。streamB
まったく同じ制約で取得すると、streamA
それらが等しいことを意味します。
これが私がこれまでに試したことです:
- MediaStream を介して比較する
id
例:仕様streamA.id == streamB.id
によると、これは失敗します:
MediaStream オブジェクトが作成されると、ユーザー エージェントは識別子文字列を生成し、オブジェクトの id 属性をその文字列に初期化する必要があります。UUID [rfc4122] を使用することをお勧めします。これは標準形式で 36 文字です。フィンガープリンティングを回避するために、実装では、UUID を生成するときに RFC 4122 のセクション 4.4 または 4.5 のフォームを使用する必要があります。
MediaStreamTracks
id
の を比較してください- 同じ話で、トラックごとに UUID が生成されます。labels
現在の Chrome にハードウェアの名前/識別子が含まれているトラックを比較します。ただし、これは私が探しているものに非常に近いです(私のものを強調してください):
ユーザー エージェントは、オーディオ ソースとビデオ ソースにラベルを付けることができます (「内部マイク」や「外部 USB Web カメラ」など)。label 属性は、オブジェクトの対応するソースのラベルを返す必要があります (存在する場合)。対応するソースにラベルがある場合、またはラベルがない場合、属性は代わりに空の文字列を返す必要があります
私が取ることができる別のアプローチはありますか?2 つのメディア ストリームを比較するような状況になってはいけませんか? label
その属性を信頼できると思いますか?
御時間ありがとうございます。