ch_nw_music
差分
このページの2つのバージョン間の差分を表示します。
ch_nw_music [2018/01/04 01:27] – 作成 kanemune | ch_nw_music [2018/02/09 11:05] (現在) – klab | ||
---|---|---|---|
行 1: | 行 1: | ||
+ | # 音楽を交換しよう | ||
+ | ネットワーク機能を使って、教室の中で友だちと音楽データを交換するプログラムを作ってみよう。 | ||
+ | |||
+ | |||
+ | ## 音楽を演奏する | ||
+ | **ch_music** で扱った音楽演奏を思い出してみよう。ドリトルでは、「ドレミー」のようにメロディを書いて音楽を演奏できる。次のプログラムでは、メロディを入力する「曲」というフィールドオブジェクトを作り、**リターンキー** を押したときにメロディオブジェクトにフィールドに書かれた旋律を追加して演奏する。 | ||
+ | |||
+ | |||
+ | {{: | ||
+ | |||
+ | < | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | ## 音楽を送信する | ||
+ | 入力した音楽をサーバーに書き込めるようにする。次のプログラムでは、「送信」ボタンを押したときに、曲名とメロディをサーバーに書き込む。 | ||
+ | |||
+ | {{: | ||
+ | |||
+ | |||
+ | < | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | 実行すると、サーバーにメロディの文字列が書き込まれる。 | ||
+ | |||
+ | |||
+ | |||
+ | ## 音楽を受信できるようにする | ||
+ | サーバーから音楽を受信して演奏できるようにする。次のプログラムでは、曲名を入力して「受信」ボタンを押したときに、サーバーからその曲のメロディをダウンロードして「曲」フィールドに表示する。曲フィールドでリターンキー を押すことで、ダウンロードした曲が演奏される。このように、ひとつのフィールドを送信と受信のために共通に使うこともできる。 | ||
+ | |||
+ | |||
+ | {{: | ||
+ | |||
+ | < | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | |||
+ | ネットワークで接続された複数台のコンピュータで動作を確認する場合には、次のようにする。 | ||
+ | |||
+ | * 複数台のコンピュータでドリトルを起動する。2台以上であれば何台でも構わない。 | ||
+ | * それぞれのドリトルに上のプログラムを入力する。 | ||
+ | * どれか1台のドリトルでサーバーを起動する。他のドリトルでは、サーバーを「終了」ボタンで閉じておくとよい。 | ||
+ | * プログラムの「localhost」の部分にサーバーを実行しているコンピュータ名を記述する。コンピュータ名が分からない場合は、サーバーのIPアドレスを**sec_ipaddress** の手順で調べて記述する。 | ||
+ | * 曲を入力し、分かりやすい名前を付けてサーバーに書き込む。 | ||
+ | * ドリトルの編集画面から「サーバー」ボタンを押してサーバー上のオブジェクトを確認する。自分の書き込んだ曲や、他の人が書き込んだ曲を一覧できる。確認したら「了解」ボタンでダイアログを閉じる。 | ||
+ | * プログラムの実行画面で、他の人の曲名を入力してから「受信」ボタンを押して受信し、表示された曲のフィールドでリターンキー を押して、ダウンロードした曲を演奏する。これは音楽や映像をインターネットのサーバーに書き込み、それをいろいろな人が視聴することに相当する。 | ||
+ | * なお、受信時に曲が見つからないときは、メロディの欄に「値が存在しない」という意味の**未定義**オブジェクトである「[**undef**]」が表示される。 | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ## 長い曲を交換(ダウンロードとストリーミング) | ||
+ | 携帯電話やパソコンでは、インターネットからダウンロードした音楽を聴くことができる。また、ダウンロードせずにストリーミングとして聴いていくこともできる。ここでは、ドリトルで作った音楽を、ダウンロードとストリーミングという2種類の方法で聴くためのプログラムを作成する。授業で学習する場合には、先生など1人が送信プログラムを実行し、他の生徒は受信プログラムを実行する。 | ||
+ | |||
+ | |||
+ | ### 送信プログラム | ||
+ | 次のプログラムは、音楽をサーバーに送信するプログラムである。送信する曲は、小節ごとに6個に分けて「曲」という配列に格納している。「送信」ボタンを押すと、最初に曲の行数(6行)と送信間隔(4秒)をサーバーに送信した後、曲を一定間隔で1行ずつサーバーに送信する。実行は次の節の受信プログラムと合わせて行う。 | ||
+ | < | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | |||
+ | ### 受信プログラム | ||
+ | 次のプログラムは、音楽をサーバーから受信するプログラムである。「ダウンロード」ボタンまたは「ストリーミング」ボタンを押すと、最初に曲の行数と受信間隔を受信した後、曲を一定間隔で1行ずつ受信する。ダウンロードボタンを押したときは、曲全体を受信してから演奏する。ストリーミングボタンを押したときは、曲の一部を受信しながら随時演奏していく。 | ||
+ | |||
+ | 実行する際は2つのドリトルの画面で、送信プログラムと受信プログラムを実行する。そして、送信プログラムの「送信」ボタンを押した直後に受信プログラムの「ダウンロード」または「ストリーミング」のボタンを押す。 | ||
+ | |||
+ | < | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||