Dart MumbleTransportクライアントフレームワーク

ブログ

dumble(dart + mumble)は、dartMumbleトランスポートクライアントフレームワークです。これにより、次のことが可能になります。

  • Mumbleサーバーを安全に接続する
  • (パスワードで保護された)チャネルの参加、作成、削除
  • チャネルリンクを管理する
  • ユーザーの登録、ミュート、聴覚障害
  • キック、禁止、禁止解除、ユーザー
  • サーバーとユーザーの統計を見る
  • チャンネルとユーザーのコメントを設定する
  • チャネルまたはプライベートテキストチャットを使用する
  • ささやきユーザー
  • オーディオストリームを送受信します(ただし、録音/再生もエンコードもしません。以下を参照してください)
  • TCPまたは完全に暗号化されたUDPトランスポートを使用する
  • WIPアクセスリストの管理
  • WIPプラグインのデータ送信

録音またはコーディング機能はありませんか?

Mumbleユーザーは通常、マイクを使用して生のオーディオを録音します。生のオーディオは、オーディオコーデックを使用してエンコードされ、最後にMumbleクライアントによってセグメント化されてMumbleサーバーに送信されます。 Dumbleはトランスポートクライアントフレームワークです。オーディオを録音、再生、エンコード、またはデコードすることはそのタスクではありません。すでにエンコードされたストリームをセグメント化して転送し、つぶやきの仕様に従って送信されるようにします。

オーディオの録音と再生は、基盤となるプラットフォームに依存し、dart:vmによって抽象化されません。 Windows、Mac、Linux、IOS、Androidで動作が異なるため、プラットフォームごとに異なる実装が必要です。たとえば、Linuxでは、Windowsが独自のAPIを提供するレコードとしてalsを使用できます。

オーディオエンコーディングおよびデコーディングツールが統合されていないのはなぜですか? Mumbleはさまざまなオーディオコーデックをサポートしていますが、実際には、opusが唯一の関連する最新のコーデックです。 opusの純粋なダーツ実装はなく、ダーツとフラッターのラッパーのみであり、追加の構築手順が必要です。ユニバーサルプラグインソリューションを作成することはできません。したがって、フラッターでダンブルを使用している場合は、opus_flutterを自分で統合してください。また、フラッターなしでダンブルを使用している場合は、opus_dartを自分で統合してください。

dumbleはトランスポートフレームワークであり、アプリではないことに注意してください。

つぶやくバージョン

このパッケージは、Mumble 1.4を使用するサーバー用に設計されていますが、一部の機能が不足しています。上記を参照してください。

さらにヌルの安全性の改善

nullセーフティへの最初の移行はバージョン0.8.0で行われましたが、改善される可能性があり、将来的に改良されることがいくつかあります。

  • 現在使用中です!インスタンス変数をプロモートするためのnullチェックの後ですが、effective-dartによって提案されているようにローカルコピーの使用に切り替える必要があります。
  • ServerInfoには、現在、多くのnull許容フィールドが含まれています。クライアントの暗号化状態と自己フィールドに対して行っているのと同じように、同期中に対応するプロトメッセージが受信されることを保証できれば、それらをnull不可にすることができる可能性があります。つぶやくプロトコルでそれを再確認する必要があります。
  • チャネルとユーザーについても同じことが言えます。実際にnullになる可能性のあるフィールドはどれですか。その上でつぶやくプロトコルをチェックする必要があります。ここでの問題は、Mumble.protoがすべてをオプションとしてマークすることですが、コンテキストによっては、certianフィールドが存在する必要があります。結論として、ここで最適なソリューションを見つけるには、プロトコルをより深く理解する必要があります。

ロードマップ

このパッケージの将来のために計画されている手順については、ROADMAP.mdを参照してください。

テキストチャットの使用方法、チャネルの作成方法、および音声の送信方法を示すいくつかの例があります。それらはすべて、サンプルフォルダにあります。

このパッケージをライブラリとして使用する

それに依存する

次のコマンドを実行します。

Dartの場合:

$ dart pub add dumble

フラッター付き:

$ flutter pub add dumble

これにより、パッケージのpubspec.yamlに次のような行が追加されます(暗黙のdart pub getを実行します)。

dependencies: dumble: ^0.8.9

または、エディターがdart pubgetまたはflutterpubgetをサポートしている場合があります。詳細については、エディタのドキュメントを確認してください。

インポートする

これで、Dartコードで、次を使用できます。

import 'package:dumble/dumble.dart';

example / README.md

ダンブルの例。

すべての例は、このフォルダーから実行する必要があります(dart ./bin/.dartを使用)。

この例では、オーディオのエンコードとデコードにopus_dartを使用しています。

#flutter#dart#mobile-apps

github.com

Dart MumbleTransportクライアントフレームワーク

完全に暗号化されたUDPトランスポートやユーザー管理などの複数のMumble機能をサポートするMumbleトランスポートクライアントフレームワーク

マチックはどこで買えますか