Skip to content

ya2ha4/TextAliveAppAPI_VerificationCode_2023_11_ver1

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

概要

本プログラムは textalive-app-api (ver.0.3.2) において以下の挙動に関する問い合わせのための検証用に作成したものです。

  • Player を複数生成し、requestPlay() を実行すると楽曲が再生されないことがある
  • Player を複数生成し、同じタイミングで requestPlay() を実行したものの Player.timer.position に差異が発生する

問い合わせ内容の症状は全て本プログラムにおいて

  • 再現性あり(毎回必ず発生)

問い合わせ内容

Player を複数生成し、requestPlay() を実行すると楽曲が再生されないことがある

症状

new Player() を実行してから onTimerReady() のイベントリスナーが発生するまでに別の Player を生成すると、requestPlay() を実行しても楽曲が再生されません。
この時、すべての Player.requestPlay() は true を返しています。

再現方法

TextAlivePlayer.ts の TextAlivePlayer._isReady を true にすると次の Player を生成するようになっていますので、適所にコメントアウトしている this._isReady = true が実行されるようにして下さい。
Player の生成処理は TextAlivePlayer.initialize() にて実行しています。

回避方法

症状の説明にもある通り、onTimerReady() が呼び出されるまで Player の生成を実行しないことで複数の Player が問題なく動作するようになっています。

要望

任意のタイミングで Player を生成しても症状が発生しないよう対応いただけますでしょうか?
また、再生に失敗する場合は requestPlay() が false を返すよう対応いただけますでしょうか?

Player を複数生成し、同じタイミングで requestPlay() を実行したものの Player ごとに position の差異が発生する

症状

表題の通り複数の Player.requestPlay() を同一タイミングで実行しても position の値にズレが発生しています。
これは、Player.timer.position や onTimeUpdate() で取得可能な position いずれのケースでも発生します。

再現方法

index.ts の MainSequence.update() にて各 Player の position をコンソール出力している処理がありますので、コメントアウトを外して出力をご確認下さい。

要望

過去に Gitter Chat のやり取りにて言及されていた、ユーザ側でロジックの調整できる環境を提供いただくか、現行の Timer クラスにて対応いただけますでしょうか?

検証用プログラム

セットアップ方法

前準備

Node.js をインストールして下さい。

パッケージのインストール

package.json のあるディレクトリ (app) にて下記コマンドを実行し、パッケージをインストールして下さい。

npm install

TextAlive App API トークンの設定

トークンを下記のjsonファイルに設定して下さい。(トークンは https://developer.textalive.jp/ から取得して下さい。)

  • 開発用:app/src/textalive/dev_textalive_config.json

サーバの起動

下記コマンドを実行することで、サーバが起動します。

npm run build-dev

下記の出力が表示されていればOKです。
そのurlにアクセスすることでアプリを確認することができます。

Server running at http://localhost:**** (**** はデフォルト 1234 のポート番号)

プログラムの挙動

  1. 起動すると6曲分の Player クラスを生成し、再生準備を行います。
  2. 再生準備が完了するとコンソール出力に ready と表示されます。
  3. 画面をクリックすると全ての Player を再生し、一定間隔ごとに聞こえる曲が変わるよう音量を変更する処理が実行されます。

プログラムの構成

ソースコードは app/src 以下にあります。各ソースコードの概要は以下の通りです。

index.ts

エントリーポイント用。

ConstantDefine.ts

定数を定義しているファイル。

textalive/MusicInfo.ts

マジカルミライ2023プログラミングコンテスト対象楽曲の Plyaer.createFromSongUrl() 用パラメータ定義。

textalive/TextAlivePlayer.ts

Player クラスを保持、イベントハンドラの登録を行っているクラス。

License

package

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published