Web版プラグインでP2Pが機能しない場合のトラブルシューティング手順
- 同じLAN内にある2台以上の端末で同時にWebページを開き、同じ動画を再生します
- ライブ配信の場合はP2P最適化ガイドに従って設定することをお勧めします
- 動画を再生した後、ブラウザのデバッグウィンドウを開いてdebug情報を確認します
- 赤色のエラーメッセージが表示される場合は、通常コードのロジックに問題があります。表示内容に従って修正してください
- その他の情報が表示される場合は、表示内容に従って操作してください。以下の5つの可能性があります:
- ドメインが紐付けられていない:SwarmCloudのバックエンドはHTTPリクエストのOriginフィールドからドメインを取得することに注意してください(iFrameを使用している場合、このドメインはサイトのドメインと一致しない可能性があります)。バックエンドで正しいドメインを紐付けてください
- トラフィックを使い切った:管理パネルにログインし、該当するドメインに切り替えてトラフィック使用状況を確認してください
- 管理パネルの P2P設定 でP2Pサービスが無効になっている:再度有効化してください
- 管理パネルの P2P設定 でアクティベーション比率が下げられている:再度100に調整してください
- ドメインがブラックリストに登録されている:管理パネルにログインし サイト管理 をクリックすることで確認できます
- 上記のいずれの異常も表示されない場合は、m3u8パスが動的に変化しないことを確認してください。動的に変化する場合は、同一のChannelIdを構築する方法を参照してください
- 上記の手順でも問題が解決しない場合は、技術サポートまでご連絡ください
クライアントSDKでP2Pが機能しない場合のトラブルシューティング手順
- 必ず実機でデバッグしてください
- 同じLAN内にある2台のデバイスを同時に開きます
- ライブ配信の場合はP2P最適化ガイドに従って設定することをお勧めします
iOS
- 管理パネルでキーワード「P2P warning」を検索し、該当する警告メッセージに従って設定してください
- それでも問題が特定できない場合は、まずログ出力機能を有効にしてファイルとして保存してください。サンプルコードは以下の通りです:
swift
let config = P2pConfig(
trackerZone: .Europe, // Set HongKong or USA if you changed zone
debug: true
)
P2pEngine.setup(token: YOUR_TOKEN, config: config)objective-c
P2pConfig* config = [P2pConfig defaultConfiguration];
config.trackerZone = TrackerZoneEurope; // Set HongKong or USA if you changed zone
config.debug = YES;
[P2pEngine setupWithToken:YOUR_TOKEN config:config];- ログファイルをSwarmCloudの技術担当者に送付してください
Android
- Logcatでキーワード「P2P warning」を検索し、該当する警告メッセージに従って設定してください
- それでも問題が特定できない場合は、まずログレベルをDebugに変更してファイルとして保存してください。サンプルコードは以下の通りです:
kotlin
val config = P2pConfig.Builder().logEnabled(true).logLevel(LogLevel.DEBUG).logPersistent(true).build()
P2pEngine.init(this, YOUR_TOKEN, config)java
P2pConfig config = new P2pConfig.Builder().logEnabled(true).logLevel(LogLevel.DEBUG).logPersistent(true).build();
P2pEngine.init(this, YOUR_TOKEN, config);- 外部ストレージ(Environment.getExternalStorageDirectory() -> /Android/data/)内にある logger/logs_0.csv を探してください。見つからない場合はパス「/storage/emulated/0」を確認し、完全なログが保存されたcsvファイルをSwarmCloudの技術担当者に送付してください
Androidアプリの署名を取得する方法
keytoolを使用してアプリの署名を取得できます
bash
keytool -v -list -keystore path/to/my-signing-key.keystore出力される証明書のフィンガープリント(MD5, SHA1, SHA256)のうち、SHA1に対応する文字列が必要なアプリ署名です。
Androidプロジェクトで "2 files found with path 'lib/arm64-v8a/libc++_shared.so' from inputs: ..." というエラーが出た場合の解決方法
build.gradle(app) に以下の設定を追加してください:
android {
packagingOptions {
pickFirst 'lib/x86/libc++_shared.so'
pickFirst 'lib/x86_64/libc++_shared.so'
pickFirst 'lib/armeabi-v7a/libc++_shared.so'
pickFirst 'lib/arm64-v8a/libc++_shared.so'
}
...
}