重要な更新:
私はあなたが求めていることをほぼ実行するリポジトリをgithubに作成しました。見てみな!
以下は私の古い答えです:
a。まず、githubプロジェクトで行ったのと同じように、音楽からオーディオバッファデータを取得します。
b。このデータを取得してパケットに分割します。各パケットには、後で配信を管理し、同期されていることを確認するために使用するヘッダー情報が含まれています。したがって、たとえば、各パケットのタイムスタンプ、その順序、音楽ファイルのハッシュなど。アイデアを得るためにこの回答を参照してから、パケットをパッケージ化する方法を詳細に示すこの優れたチュートリアルを見てください。あらゆる目的。
ネットワークの反対側では、パッケージ化と非常によく似た方法でパケットを解凍します。再度、それを行う方法を詳細に説明している上記のチュートリアルを参照してください。
これが最も難しい部分です。幸い、2つのデバイスしか扱っていないので、GKSessionでそれを行うことができます。それ以外の場合は、レベルを下げる必要があります(つまり、bonjourを使用します。GKSessionは..のラッパーであり、多くのオーバーヘッドが追加されます。リアルタイムアプリを購入する余裕はありませんが、慌てる必要はありません。この本には、bonjourを使用するための優れた簡単な例があります。)
もう一方の端でオーディオキューバッファを満たすのに十分なパケットを収集し、次に信頼性の低いパケット(読み取り:udpプロトコル)を送信して音楽の再生をジャンプスタートするという考え方です。udp送信を使用すると、ほぼ瞬時に配信されます(人間の耳では、2つのデバイス間の遅延を区別できないと思います)。ただし、信頼性の低いパケットが失われることがあります。それを使って、またはそれを処理する方法を考えてください。
そして最後になりましたが、あなたは間違いなくコアオーディオの学習のコピーを手に入れたいと思っています..iOSでコアオーディオをしている人は誰でもこれを必要としています。また、この回答に続くディスカッションもご覧ください。コアオーディオ/リアルタイムiOSアプリに関しては、対処すべき多くのことに注意を向けることができます。
幸運を!