• このエントリーをはてなブックマークに追加
受付システム機能追加
閉じる
閉じる

新しい記事を投稿しました。シェアして読者に伝えましょう

×

受付システム機能追加

2017-03-30 00:11
    高機能ムービープレーヤーと化した受付システム?

    どうも
    テクニカルラボ室長です

    受付システムのデモを実施した際に
    以下3点の指摘を受けた
     
    (1)UIの画面遷移
    (2)ムービーファイルはファイル名にかかわらずiTunesで入れたファイルを順に再生する
    (3)終了した際に自動的にタイトル画面へ
     
    (1)UIの画面遷移については単純に自動で遷移すればよいだけなのでたいしたことは無く秒殺
    (3)終了した際に自動的にタイトル画面へ、は相手の接続が切れた時にタイトルに遷移すればよいのだが、
     ここで一点問題があった

    それは「相手が接続がエラーになった場合」だ。
    相手がエラーなのかそれとも接続の問題か判断できず不明なエラーによりCloseしてしまうと
    画面が戻らない時がある、このエラーの判断が厳しい
     
    どうしようと悩んだ結果、
    会話中に一定の時間が経過したら強制的にタイトル画面に戻すと言う方法にした。

    基本的には受付で会話するにも5分もかからないだろう
    と、言うことで5分が過ぎたら強制的にタイトル画面に戻す事で
    とりあえず何とかなりそうだ。
     
    (2)ムービーファイルはファイル名にかかわらずiTunesで入れたファイルを順に再生する
    なのだがここにハマった

    iTunesでDocumentsフォルダーに入れたMP4動画ファイルを順に再生する方法は
    アプリ内のDocumentsディレクトリ内の「mp4」拡張子のファイルだけを列挙し
    動画アイテム配列としてAVQueuePlayerに登録すれば、
    後はキュープレイヤーが勝手に連続再生してくれる。

    だかしかし、最後のファイルの再生が終わった時が問題。
     再度動画アイテムをAVQueuePlayerにセットするもののうまくいかずそのまま終了してしまうのだ・・・

    なんてこったいガッデム、海外のサイトのiOSアプリ開発関連の掲示板を見ていたら
    やはり同じような悩みを持った人が多いようだ
    まぁよく考えれば複数のムービーファイルを指定して繰り返し再生など、
    そうそうやる人も少ないだろう

    掲示板を読んでいたらAVQueuePlayerを使用した音楽再生アプリで悩んでいた人の
    解決方法があったので試して見た。

    まずviewDidLoadに以下ロジックを追記した
    簡単に言えばAVQueuePlayerの再生ムービーファイルが最後でかつ最後まで再生されたら
    playerItemDidReachEndメソッドを実行する。

        [[NSNotificationCenter defaultCenter] addObserver:self
                                                 selector:@selector(playerItemDidReachEnd:)
                                                     name:AVPlayerItemDidPlayToEndTimeNotification
                                                   object:[self.playItems lastObject]];

    次にplayerItemDidReachEndメソッドは以下のロジックにした
    /* 再度最初のファイルから再生する */
    - (void)playerItemDidReachEnd:(NSNotification *)notification {

        //AVQueuePlayerの再生アイテムを全件削除
        [self.player removeAllItems];
        
        NSLog(@"繰り返し再生テスト");
        
        //AVPlayerItemの再生ムービー全て頭出ししつつAVQueuePlayerにInsert
        for (AVPlayerItem *item in self.playItems)
        {
            [item seekToTime:kCMTimeZero];
            [self.player insertItem:item afterItem:nil];
        }
        //再生再開
        [self.player play];
    }

    いけコラーとiPad本体にアプリをズブズブ流し込み
    iTunesで適当なムービーファイルをドバドバ2本ほど入れて
    実行したところ・・・できたでヲラー!!
    これでファイル順かつムービー無限再生が行える立派なCM垂れ流し再生が可能になったぞー

    ここでハッ!と気付く、これ受付システムだよな・・・

    これじゃまるで高機能ムービープレーヤーを作っているような気がしないでもない
    いや、むしろ受付会話側のロジックよりはるかにムービー再生側の機能やロジックが多い気がしないでもない・・・

    いや待て待て、ある意味これはこれでiPadを使った
    CM垂れ流しだけするアプリも提供できるって事ではないか?

    ユーザーが自由にCMムービーを入れ替えして
    iPadでムービー垂れ流すなんてのもアプリとして悪くないかもしれない
    試しにロズウェル 君ヶ浜駅に、会社CM用ムービー垂れ流しにiPadを設置してはいかがですか?

    コメントを書く
    コメントをするにはログインして下さい。