図1は、本発明の一実施形態に係るシステム1のネットワーク構成を概略的に示す構成図である。一実施形態におけるシステム1は、図示するように、サーバ10と、このサーバ10とインターネット等の通信網20を介して接続された複数の端末装置30と、を備え、一のユーザ(配信ユーザ)の端末装置30上で出力(表示)されている出力画面を他のユーザ(視聴ユーザ)の端末装置30上で出力する画面配信(画面共有)サービスを提供する。
一実施形態におけるサーバ10は、一般的なコンピュータとして構成されており、図示のとおり、CPU(コンピュータプロセッサ)11と、メインメモリ12と、ユーザI/F13と、通信I/F14と、ストレージ(記憶装置)15と、を含み、これらの各構成要素がバス17を介して互いに電気的に接続されている。CPU11は、ストレージ15からオペレーティングシステムやその他様々なプログラムをメインメモリ12にロードし、このロードしたプログラムに含まれる命令を実行する。メインメモリ12は、CPU11が実行するプログラムを格納するために用いられ、例えば、DRAM等によって構成される。なお、一実施形態におけるサーバ10は、それぞれ上述したようなハードウェア構成を有する複数のコンピュータを用いて構成され得る。
ユーザI/F13は、例えば、オペレータの入力を受け付けるキーボードやマウス等の情報入力装置と、CPU11の演算結果を出力する液晶ディスプレイ等の情報出力装置とを含む。通信I/F14は、ハードウェア、ファームウェア、又はTCP/IPドライバやPPPドライバ等の通信用ソフトウェア又はこれらの組み合わせとして実装され、通信網20を介して端末装置30と通信可能に構成される。
ストレージ15は、例えば磁気ディスクドライブで構成され、画面配信サービスを提供するための制御用プログラム等の様々なプログラムが記憶される。また、ストレージ15には、画面配信サービスを提供するための各種データも記憶され得る。ストレージ15に記憶され得る各種データは、サーバ10と通信可能に接続されるサーバ10とは物理的に別体のデータベースサーバ等に格納されてもよい。
一実施形態において、サーバ10は、階層構造の複数のウェブページから成るウェブサイトを管理するウェブサーバとしても機能し、こうしたウェブサイトを介して画面配信サービスを端末装置30のユーザに対して提供し得る。ストレージ15には、このウェブページに対応するHTMLデータも記憶され得る。HTMLデータは、様々な画像データが関連付けられ、又、JavaScript(登録商標)等のスクリプト言語等で記述された様々なプログラムが埋め込まれ得る。
また、一実施形態において、サーバ10は、端末装置30においてウェブブラウザ以外の実行環境上で実行されるアプリケーションを介して画面配信サービスを提供し得る。ストレージ15には、こうしたアプリケーションも記憶され得る。このアプリケーションは、例えば、Objective−CやJava(登録商標)等のプログラミング言語を用いて作成される。ストレージ15に記憶されたアプリケーションは、配信要求に応じて端末装置30に配信される。なお、端末装置30は、こうしたアプリケーションを、サーバ10以外の他のサーバ(アプリマーケットを提供するサーバ)等からダウンロードすることもできる。
このように、サーバ10は、画面配信サービスを提供するためのウェブサイトを管理し、当該ウェブサイトを構成するウェブページ(HTMLデータ)を端末装置30からの要求に応答して配信することができる。また、上述したように、サーバ10は、このようなウェブページ(ウェブブラウザ)を用いた画面配信サービスの提供とは代替的に、又は、これに加えて、端末装置30において実行されるアプリケーションとの通信に基づいて画面配信サービスを提供することができる。いずれの態様で当該サービスを提供するにしても、サーバ10は、画面配信サービスの提供に必要な各種データ(画面表示に必要なデータを含む)を端末装置30との間で送受信することができる。また、サーバ10は、各ユーザを識別する識別情報(例えば、ユーザID)毎に各種データを記憶し、ユーザ毎に画面配信サービスの提供状況を管理することができる。詳細な説明は省略するが、サーバ10は、ユーザの認証処理や課金処理等を行う機能を有することもできる。
一実施形態における端末装置30は、サーバ10が提供するウェブサイトのウェブページをウェブブラウザ上で表示すると共にアプリケーションを実行するための実行環境を実装した任意の情報処理装置であり、スマートフォン、タブレット端末、ウェアラブルデバイス、パーソナルコンピュータ、及びゲーム専用端末等が含まれ得る。
端末装置30は、一般的なコンピュータとして構成され、図1に示すとおり、CPU(コンピュータプロセッサ)31と、メインメモリ32と、ユーザI/F33と、通信I/F34と、ストレージ(記憶装置)35と、を含み、これらの各構成要素がバス37を介して互いに電気的に接続されている。
CPU31は、ストレージ35からオペレーティングシステムやその他様々なプログラムをメインメモリ32にロードし、このロードしたプログラムに含まれる命令を実行する。メインメモリ32は、CPU31が実行するプログラムを格納するために用いられ、例えば、DRAM等によって構成される。
ユーザI/F33は、例えば、ユーザの入力を受け付けるタッチパネル、キーボード、ボタン及びマウス等の情報入力装置と、CPU31の演算結果を出力する液晶ディスプレイ等の情報表示装置とを含む。また、ユーザI/F33は、音声を入力して電気信号に変換する一般的なマイク33bと、レンズを介して入力される画像を静止画像又は動画像として撮影し記録する一般的なカメラ33bと、を含む。カメラ33bは、端末装置30の前面等に設けられ端末装置30を操作するユーザ自身を撮影するフロントカメラを含む。
通信I/F34は、ハードウェア、ファームウェア、又は、TCP/IPドライバやPPPドライバ等の通信用ソフトウェア又はこれらの組み合わせとして実装され、通信網20を介してサーバ10と通信可能に構成される。
ストレージ35は、例えば磁気ディスクドライブやフラッシュメモリ等により構成され、オペレーティングシステム等の様々なプログラムが記憶される。また、ストレージ35は、サーバ10から受信した様々なアプリケーションが記憶され得る。
端末装置30は、例えば、HTML形式のファイル(HTMLデータ)を解釈して画面表示するためのウェブブラウザを備えており、このウェブブラウザの機能によりサーバ10から取得したHTMLデータを解釈して、受信したHTMLデータに対応するウェブページを表示することができる。また、端末装置30のウェブブラウザには、HTMLデータに関連付けられた様々な形式のファイルを実行可能なプラグインソフトが組み込まれ得る。
端末装置30のユーザがサーバ10によって提供されるサービスを利用する際には、例えば、HTMLデータやアプリケーションによって指示されたアニメーションや操作用アイコン等が端末装置30に画面表示される。ユーザは、端末装置30のタッチパネル等を用いて各種指示を入力することができる。ユーザから入力された指示は、端末装置30のウェブブラウザやNgCore(商標)等のアプリケーション実行環境の機能を介してサーバ10に伝達される。
次に、このように構成された一実施形態におけるシステム1が有する機能について説明する。図2は、システム1(サーバ10及び端末装置30)が有する機能を概略的に示すブロック図である。まず、一実施形態におけるサーバ10が有する機能について説明する。サーバ10は、図示するように、様々な情報を記憶する情報記憶部41と、画面配信サービスを全体的に管理するサービス管理部42と、画面配信サービスにおける画面の配信を制御する配信制御部43と、を備える。これらの機能は、CPU11及びメインメモリ12等のハードウェア、並びに、ストレージ15に記憶されている各種プログラムやテーブル等が協働して動作することによって実現され、例えば、ロードしたプログラムに含まれる命令をCPU11が実行することによって実現される。また、図2に例示したサーバ10が有する機能の一部又は全部は、サーバ10と端末装置30とが協働することによって実現され、又は、端末装置30によって実現され得る。
一実施形態における情報記憶部41は、ストレージ15等によって実現され、図2に示すように、画面配信サービスのユーザに関する情報を管理するユーザ情報管理テーブル41aと、個別の画面配信の単位である配信ルームに関する情報を管理する配信ルーム情報管理テーブル41bと、を有する。図3は、一実施形態におけるユーザ情報管理テーブル41aにおいて管理される情報の一例を示す。ユーザ情報管理テーブル41aは、図示するように、個別のユーザを識別する「ユーザID」に対応付けて、アカウント名、年齢、性別等のユーザの基本的な情報である「基本情報」、ユーザによって選択されたアプリケーションに関する情報である「登録アプリ情報」、ユーザによる画面の配信履歴に関する情報である「配信履歴情報」、他のユーザが配信する画面の視聴履歴に関する情報である「視聴履歴情報」、ユーザがフォローしている他のユーザに関する情報である「フォローユーザ情報」等の情報を管理する。これらの情報のうち、基本情報及び登録アプリ情報は、画面配信サービスに新規登録(アカウント作成)するとき等にユーザによって入力された情報が設定され、その後、ユーザによる指示に応じて適宜に更新される。また、配信履歴情報及び視聴履歴情報は、ユーザによる画面の配信、及び、他のユーザが配信する画面の視聴に応じて適宜に更新される。また、フォローユーザ情報は、ユーザによる指示に応じて適宜に更新される。
ここで、一実施形態における画面配信サービスは、特定のアプリケーションを実行する(例えば、ゲームをプレイする)様子を、配信する画面を介して他のユーザと共有することを目的の一つとするサービスであり、ユーザ情報管理テーブル41aの登録アプリ情報には、ユーザが興味を有するアプリケーション(例えば、画面の配信や視聴を希望するアプリケーション)が選択されて設定される。一実施形態において、ユーザが登録アプリ情報を入力するときに、端末装置30にインストールされているアプリケーションの一覧を当該端末装置30(のOS)から取得して表示し、この一覧表示されているアプリケーションの中からユーザによって選択されたアプリケーションを登録アプリ情報として設定するように構成することもできる。
図4は、一実施形態における配信ルーム情報管理テーブル41bにおいて管理される情報の一例を示す。配信ルーム情報管理テーブル41bは、図示するように、個別の配信ルームを識別する「配信ルームID」に対応付けて、この配信ルームを介して画面を配信するユーザ(配信ユーザ)を識別する「ユーザID」、この配信ルームを介して画面を配信するアプリケーションを識別する「アプリID」、この配信ルームを介した画面配信の状況(現在の視聴ユーザ数等)及び実績(過去の累積視聴ユーザ数等)等に関する情報である「配信関連情報」等の情報を管理する。一実施形態の画面配信サービスでは、画面配信を希望するユーザの指示に応じて配信ルームが作成され、具体的には、配信ルーム情報管理テーブル41bにレコードが作成され、ユーザIDに対応する値(配信ユーザのユーザID)が設定される。また、一実施形態の画面配信サービスは、上述したように、特定のアプリケーションを実行する様子を画面を介して配信することを目的の一つとするサービスであり、アプリIDには、画面を配信するアプリケーションとして配信ユーザによって選択されたアプリケーションを識別する値が設定される。
一実施形態におけるサービス管理部42は、一実施形態における画面配信サービスの管理に関する様々な処理を実行する。例えば、サービス管理部42は、サービスの管理に関する様々な画面のHTMLデータ又は制御データを端末装置30に送信し、端末装置30上で表示される当該画面を介したユーザによる操作入力に応答して様々な処理を実行し、当該処理の結果に応じたHTMLデータ又は制御データを端末装置30に送信する。ここで、サービスの管理には、ユーザの管理(例えば、ユーザ情報管理テーブル41aの更新等)、及び、配信ルームの管理(例えば、配信ルーム情報管理テーブル41bの更新等)等が含まれ得る。
一実施形態における配信制御部43は、画面配信サービスにおける画面の配信の制御に関する様々な処理を実行する。例えば、配信制御部43は、配信ユーザの端末装置30上で出力されている出力画面を含む配信情報を受信し、この配信情報を視聴ユーザの端末装置30に送信する。例えば、配信制御部43は、配信ユーザの端末装置30上で表示されているゲームのプレイ画面を含む配信情報を受信し、この配信情報を視聴ユーザの端末装置30に送信することにより、配信ユーザがゲームをプレイする様子を視聴ユーザの端末装置30に表示させる。
一実施形態において、配信制御部43は、配信ユーザの端末装置30から配信情報を受信してから所定時間(例えば、10秒)が経過した後に当該配信情報を視聴ユーザの端末装置30へ送信するように構成され得る。即ち、配信制御部43は、配信ユーザの端末装置30上で出力されている出力画面等を視聴ユーザの端末装置30上で出力させるときに、所定の遅延時間を意図的に設けるように構成され得る。
一実施形態において、視聴ユーザの端末装置30上で出力される配信情報は、配信ユーザの端末装置30上で出力されている出力画面に加え、出力されている出力音声(例えば、ゲームの効果音等)、カメラ33aを介して入力されている入力画像(例えば、配信ユーザの映像等)、及び、マイク33bを介して入力されている入力音声(例えば、配信ユーザの声等)を含む。即ち、一実施形態における配信制御部43は、出力画面、出力音声、入力画像、及び入力音声を含む配信情報を配信ユーザの端末装置30から受信し、この配信情報を視聴ユーザの端末装置30に送信する。
また、配信制御部43は、配信ユーザの端末装置30上での特定のイベントの発生が検出されたときに、視聴ユーザの端末装置30上での配信情報の少なくとも一部の出力を停止させる。例えば、配信制御部43は、配信ユーザの端末装置30から特定のイベントの発生が検出されたことの通知を受信したときに、視聴ユーザの端末装置30上での配信情報の少なくとも一部の出力を停止させる。配信情報の出力の停止は、例えば、視聴ユーザの端末装置30への配信情報の送信自体を停止することにより行うことができ、又は、視聴ユーザの端末装置30への配信情報の送信は継続し、配信情報の出力を停止するための制御データ等を視聴ユーザの端末装置30へ送信することにより行うことができる。
以上、サーバ10が有する機能について説明した。次に、一実施形態における端末装置30が有する機能について説明する。端末装置30は、図示するように、様々な情報を記憶する情報記憶部51と、端末装置30のユーザが配信ユーザとして画面を配信するときの当該配信を制御する配信制御部52と、端末装置30のユーザが視聴ユーザとして他のユーザが配信する画面を視聴するときの当該視聴を制御する視聴制御部53と、を有する。これらの機能は、CPU31及びメインメモリ32等のハードウェア、並びに、ストレージ35に記憶されている各種プログラムやテーブル等が協働して動作することによって実現され、例えば、ロードしたプログラムに含まれる命令をCPU31が実行することによって実現される。また、図2に例示した端末装置30が有する機能の一部又は全部は、サーバ10と端末装置30とが協働することによって実現され、又は、サーバ10によって実現され得る。
一実施形態における配信制御部52は、画面の配信の制御に関する様々な処理を実行する。例えば、配信制御部52は、端末装置30上で出力されている出力画面を含む配信情報をサーバ10に送信する。上述したように、一実施形態における配信情報は、出力画面に加え、出力音声、入力画像、及び、入力音声を含む。一実施形態における配信制御部52は、例えば、出力画面の所定の位置に入力画像を重畳して配置した画面の画面データ、及び、出力音声と入力音声とを合成した音声データをサーバ10に送信し、又は、こうした画面データ及び音声データによって構成される動画データを、サーバ10に送信し得る。
また、配信制御部52は、ユーザのプライバシーに関する情報を出力する特定のイベントが端末装置30上で発生したことを検出する。一実施形態において、この特定のイベントは、例えば、電話の着信、プッシュ通知の受信、ポップアップ通知の表示、及び、配信ユーザによって特定された特定のアプリケーションの起動が含まれ得る。一実施形態における配信制御部52は、例えば、OSの機能を用いて特定のイベントの発生を検出し得る。
一実施形態における視聴制御部53は、画面の視聴の制御に関する様々な処理を実行する。例えば、視聴制御部53は、配信ユーザの端末装置30上で出力されている出力画面を含む配信情報をサーバ10から受信して、当該配信情報を端末装置30上で出力する。上述したように、一実施形態における配信情報は、出力画面に加え、出力音声、入力画像、及び、入力音声を含むから、視聴制御部53による配信情報の出力は、出力画面及び入力画像の画面出力(画面表示)、並びに、出力音声及び入力音声の音声出力を含む。
次に、このような機能を有する一実施形態におけるシステム1の動作について説明する。図5は、一実施形態における画面配信サービスのユーザが画面配信サービスを利用するときの起点となるメイン画面60の一例を示す。このメイン画面60は、例えば、画面配信サービス用のアプリケーションを端末装置30上で起動したとき、又は、サーバ10が提供する画面配信サービス用のウェブサイトに端末装置30がウェブブラウザを介してアクセスしたとき等に表示される。
一実施形態におけるメイン画面60は、図示するように、メイン領域61と、配信ユーザを一覧表示する配信ユーザ一覧領域62と、配信ルームを一覧表示する配信ルーム一覧領域63と、を有し、下端に基本メニュ領域100が配置されている。メイン領域61は、様々な情報が表示されるように構成することができ、例えば、図5に例示するように、画面を配信中の配信ルームの中から特定されたお奨めの配信ルームに関する情報(画面配信の対象となるアプリケーション及び配信ユーザに関する情報)が表示されるように構成され得る。
配信ユーザ一覧領域62は、様々な基準でソート又はフィルタリングされた配信ユーザに関する情報(例えば、ユーザに対応する画像)が一覧表示され得る。一覧表示される配信ユーザは、例えば、ユーザがフォローしている他のユーザ、人気のあるユーザ(例えば、累積視聴ユーザ数の多いユーザ)、ユーザが選択したアプリケーション(例えば、登録アプリ情報として登録されているアプリケーション)の画面を現在配信しているユーザ、当該アプリケーションの画面を過去に配信したユーザ等が含まれる。
配信ルーム一覧領域63は、様々な基準でソート又はフィルタリングされた配信ルームに関する情報(例えば、配信ルームに対応する画像)が一覧表示され得る。一覧表示される配信ルームは、例えば、ユーザが選択したアプリケーション(例えば、登録アプリ情報として登録されているアプリケーション)の画面を現在配信している配信ルーム等が含まれる。
基本メニュ領域100は、一実施形態の画面配信サービスを利用するときの基本となるメニュによって構成されており、メイン画面60以外の主要な画面においても同様に配置されている。具体的には、基本メニュ領域100は、メイン画面60を表示するためのメインメニュ102と、配信ユーザや配信ルームを検索するための検索メニュ104と、画面の配信を開始するための配信メニュ106と、ユーザに対するお知らせを表示するためのお知らせメニュ108と、マイページを表示するためのマイページメニュ109と、によって構成されている。
ユーザが検索メニュ104を選択すると、例えば、アプリケーション名、又は、その他のキーワードを用いて配信ユーザ又は配信ルーム等を検索するための画面が表示される。また、ユーザがマイページメニュ109を選択すると、マイページ画面が表示され、ユーザは、このマイページ画面を介して、例えば、ユーザの基本情報、登録アプリ情報等を閲覧及び編集することができ、又、配信履歴や視聴履歴を閲覧することができる。
ユーザが配信メニュ106を選択すると、図7に例示する配信準備画面70が端末装置30上で表示される。一実施形態における配信準備画面70は、図示するように、配信ルーム名を入力するための配信ルーム名入力領域72と、アプリケーション名を入力するためのアプリケーション名入力領域74と、「進む」と表示された続行ボタン76と、を有し、下端に基本メニュ領域100が配置されている。
一実施形態において、画面の配信を開始するユーザは、配信ルーム名入力領域72に所望の名称を入力し、アプリケーション名入力領域74に画面の配信の対象となるアプリケーションの名称を入力する。ここで、配信ルーム名を入力するときに、過去の配信に用いた配信ルーム名を一覧表示し、この一覧表示されている配信ルーム名の中から所望の配信ルーム名を選択して入力できるようにしても良い。即ち、一実施形態において、配信ユーザが、過去に作成した配信ルームを再利用できるように構成しても良いし、画面の配信を開始する都度、新たに配信ルームを作成するように構成しても良い。
また、一実施形態において、アプリケーション名入力領域74において、ユーザ情報管理テーブル41aの登録アプリ情報に含まれるアプリケーション名が一覧表示され、この一覧表示されているアプリケーション名の中から所望のアプリケーション名を選択して入力できるように構成され得る。
こうして、配信ルーム名及びアプリケーション名を入力した上で、ユーザが、続行ボタン76を選択すると、配信準備画面70が閉じられる。ここで、配信ルームが新たに作成される場合には、配信ルーム情報管理テーブル41bに新たなレコードが作成される。
図7は、続行ボタン76が選択されて配信準備画面70が閉じられたときの端末装置30の表示領域200(液晶ディスプレイ等の情報表示装置の表示領域)における表示内容の一例を示す。一実施形態において、配信準備画面70の続行ボタン76をユーザが選択して配信準備画面70が閉じられると、画面配信サービス用のアプリケーション等のプログラムはバックグラウンドで動作するようになり、図示するように、端末装置30の表示領域200には、例えば、OSのホーム画面が出力画面210として領域全体に表示される。そして、表示領域200には、領域上端のコメント入力領域82、その左下側のカメラ画像表示領域84、並びに、領域右下隅の開始ボタン86及び戻るボタン88が、それぞれ出力画面210に重畳して配置される。コメント入力領域82は、ユーザが文字列等のコメントを入力できるように構成されている。また、カメラ画像表示領域84は、端末装置30のカメラ33a(例えば、フロントカメラ)を介して入力されている画像(具体的には、例えば、配信ユーザの映像)が表示される。
一実施形態において、これらのオブジェクト82、84、86及び88は、バックグラウンドで動作する画面配信サービス用のアプリケーション等によって制御されるウィジェット形式のオブジェクトである。ユーザは、端末装置30の表示領域200のうち、オブジェクト82、84、86及び88以外の領域をタップ操作等することによって、出力画面210(OSのホーム画面)を介した操作を実行することができる。また、ユーザはコメント入力領域82及びカメラ画像表示領域84をスライド操作等することによって、これらの表示位置を変更する(オブジェクトを移動させる)ことができる。ユーザは、出力画面210(OSのホーム画面)を介した操作によって、画面の配信の対象となるアプリケーションを起動する。ここで、一実施形態において、配信準備画面70の続行ボタン76がユーザによって選択されたときに、アプリケーション名入力領域74に名称が入力されているアプリケーションが自動的に起動されるように構成しても良い。この場合、配信準備画面70が閉じられれたときの端末装置30の表示領域200における出力画面210は、当該対象のアプリケーションの画面となる。
そして、ユーザが開始ボタン86を選択すると、画面の配信が開始される。なお、ユーザが戻るボタン88を選択すると、配信準備画面70が再度表示される。
図8は、画面の配信中における配信ユーザの端末装置30の表示領域200の表示内容の一例である。図示するように、ユーザが開始ボタン86を選択すると、開始ボタン86及び戻るボタン88に代えて、メニュボタン89が配置される。このメニュボタン89もまた、画面配信サービス用のアプリケーション等によって制御されるウィジェット形式のオブジェクトである。ユーザがメニュボタン89を選択すると、図9に例示するメニュマトリクス90がオーバーレイ表示される。このメニュマトリクス90は、画面の配信中における配信の制御に関する複数のメニュが表形式で配置されており、一実施形態においては、図示するように、配信の停止、マイク33bの無効化(ミュート)、カメラ33aの無効化(カメラ画像表示領域84の非表示を含む)、コメントの閲覧、コメント欄の非表示(コメント入力領域82の非表示)、その他設定、等のメニュが配置されている。ここで、「コメントの閲覧」は、配信ユーザ自身が入力したコメント、及び、後述する視聴画面300を介して視聴ユーザが入力したコメントを閲覧するためのメニュである。
ユーザが画面の配信を開始すると、この配信ユーザの端末装置30から配信情報として、出力画面(出力画面210)、出力音声、入力画像(カメラ画像表示領域84)、及び入力音声がサーバ10に送信されるようになり、この配信情報が、視聴ユーザの端末装置30に送信されるようになる。
図10は、視聴ユーザの端末装置30上に表示される視聴画面300の一例である。視聴ユーザは、例えば、メイン画面60の配信ルーム一覧領域63に表示されている配信ルームの中から所望の配信ルームを選択すること、又は、検索メニュ104を介して検索した配信ルームの中から所望の配信ルームを選択すること等によって、視聴する配信ルームを選択することができ、こうした配信ルームの選択に応じて、対応する配信情報を出力する視聴画面300が視聴ユーザの端末装置30上で表示される。一実施形態における視聴画面300は、図10に示すように、配信ユーザの端末装置30の表示領域200と略同一の画面構成を有し、具体的には、配信ユーザの端末装置30上に出力されている出力画面210が全体に表示され、表示領域200と同様にコメント入力領域82及びカメラ画像表示領域84が重畳して配置され、右下隅には、メニュボタン91が配置される。視聴ユーザはコメント入力領域82及びカメラ画像表示領域84をスライド操作等することによって、これらの表示位置を変更することができる。
視聴ユーザがメニュボタン91を選択すると、図11に例示するメニュマトリクス92がオーバーレイ表示される。このメニュマトリクス92は、画面の視聴中における視聴の制御に関する複数のメニュが表形式で配置されており、一実施形態においては、図示するように、視聴の停止、カメラ画像の非表示(カメラ画像表示領域84の非表示)、コメントの閲覧、コメント欄の非表示(コメント入力領域82の非表示)等のメニュが配置されている。「コメントの閲覧」は、配信ユーザが入力したコメント、及び、視聴画面300を介して視聴ユーザ(他の視聴ユーザを含む)が入力したコメントを閲覧するためのメニュである。
この視聴画面300は、サーバ10が、配信ユーザの端末装置30から受信した配信情報を視聴ユーザの端末装置30に対して送信し、この配信情報を視聴ユーザの端末装置30が受信することによって表示される。上述したように、一実施形態における配信情報には、配信ユーザの端末装置30における出力音声及び入力音声も含まれる。従って、視聴ユーザの端末装置30上では、視聴画面300が表示されると共に、配信ユーザの端末装置30における出力音声及び入力音声が出力される。例えば、配信ユーザがアプリケーションとして特定のゲームをプレイしながら、そのプレイ内容を実況すると、ゲームをプレイする様子(出力画面)及びゲームの効果音(出力音声)と共に、配信ユーザの映像(入力画像)及び実況音声(入力音声)が、視聴ユーザの端末装置30上において出力されることになる。
ここで、画面の配信中において、配信ユーザの端末装置30上でユーザのプライバシーに関する情報を出力し得る特定のイベントが発生した場合の動作について説明する。図12は、配信ユーザの端末装置30上で特定のイベントが発生したときに、配信ユーザの端末装置30、サーバ10、及び、視聴ユーザの端末装置30との間で行われる通信の様子の一例を示すシーケンス図である。画面の配信中において、配信ユーザの端末装置30からサーバ10を介して視聴ユーザの端末装置30に送信される配信情報は、上述したように、出力画面、出力音声、入力画像及び入力音声が含まれている。そして、配信ユーザの端末装置30が特定のイベントの発生を検出すると、まず、図示するように、特定のイベントが発生したことをサーバ10に対して通知する(ステップS100)。
一実施形態において、ユーザのプライバシに関する情報を出力し得る様々なイベントが特定のイベントとして適用され得る。例えば、「電話の着信」が特定のイベントとして適用され得る。図13は、電話の着信が発生したときの配信ユーザの端末装置30の表示領域200の表示内容の一例を示す。図示するように、電話の着信が発生すると、典型的には、発信元ユーザに関する情報(友達リストへの登録名、及び電話番号等)を含む電話の着信を通知する画面が出力画面210として表示領域200に表示される。ここで、本明細書において、「電話の着信」には、電話網としてインターネットを用いる「インターネット電話の着信」が含まれる。
また、一実施形態において、例えば、「プッシュ通知の受信」が特定のイベントとして適用され得る。図14は、メッセージアプリケーションのメッセージの受信に関するプッシュ通知の受信が発生したときの配信ユーザの端末装置30の表示領域200の表示内容の一例を示す。図示するように、メッセージの受信に関するプッシュ通知を受信すると、典型的には、送信元ユーザに関する情報(友達リストへの登録名等)及びメッセージの内容等を含むポップアップ画面202が出力画面210内に表示される。
さらに、一実施形態において、例えば、「ポップアップ通知の表示」が特定のイベントとして適用され得る。例えば、スケジュール管理アプリケーションのアラーム機能においては、ユーザのスケジュール情報がポップアップ通知として表示され得る。また、一実施形態において、例えば、「ユーザによって特定された特定のアプリケーションの起動」が特定のイベントとして適用され得る。例えば、一実施形態において、「登録アプリ情報に含まれるアプリケーション以外のアプリケーションの起動」が特定のイベントとして適用され得る。ここで、登録アプリ情報に含まれないアプリケーションは、配信ユーザが画面の配信を希望するアプリケーションではないと考えられるから、当該アプリケーションが起動されることによって表示されるアプリケーションに関する情報は、ユーザのプライバシーに関する情報となり得る。
以上、特定のイベントとして適用可能なイベントを例示したが、一実施形態において、特定のイベントとして適用可能なイベントはここに例示したものに限られない。また、一実施形態における特定のイベントとして、1又は複数のイベントを適用することが可能である。
そして、特定のイベントの発生を配信ユーザの端末装置30から通知されたサーバ10は、視聴ユーザの端末装置30に送信する配信情報を制限する(ステップS110)。一実施形態においては、具体的には、配信ユーザの端末装置30から受信した配信情報のうち、出力画面の送信を停止する。この結果、視聴ユーザの端末装置30上では、配信ユーザの端末装置30における出力音声、入力画像、入力音声の出力は継続されるものの、出力画面(出力画面210)の出力は停止される。
ここで、上述したように、サーバ10は、配信ユーザの端末装置30から配信情報を受信してから所定時間が経過した後に当該配信情報を視聴ユーザの端末装置30へ送信し得る。この場合、特定のイベントが発生してユーザのプライバシーに関する情報を含む画面が端末装置30上で出力されてから、当該画面が視聴ユーザの端末装置30上で出力されるまでに所定の遅延時間が設けられているから、より確実に、当該画面が視聴ユーザの端末装置30上で出力されてしまうのを抑制することができる。
そして、サーバ10が、配信情報を制限したことを配信ユーザ及び視聴ユーザそれぞれの端末装置30に通知する(ステップS120)。当該通知を受領すると、配信ユーザ及び視聴ユーザの端末装置30では、それぞれ、対応する通知画面が表示される(ステップS130、140)。図15は、当該通知画面が表示されている配信ユーザの端末装置30上の表示領域200の表示内容の一例を示す。図示するように、出力画面210上に、通知画面93が重畳して配置されている。この通知画面93は、プライバシー保護の観点から画面共有(画面の配信)が停止されている旨を配信ユーザに通知し、「確認して再開」と表示された再開ボタン94と、「配信を停止」と表示された停止ボタン96と、が配置されている。配信ユーザが再開ボタン94を選択すると、画面の配信が再開され、具体的には、視聴ユーザの端末装置30に対する送信が制限されていた出力画面の送信が再開される。例えば、配信ユーザは、プライバシーに関する情報の表示を解消した上で(例えば、電話の着信の応答を拒否した上で、又は、ポップアップ画面等を消去した上で等)、再開ボタン94を選択することになる。
一方、配信ユーザが停止ボタン96を選択すると、配信情報の配信自体が停止される。具体的には、出力画面に加え、出力音声、入力画像及び入力音声の視聴ユーザの端末装置30に対する送信も停止される。また、一実施形態においては、電話を着信した配信ユーザが当該着信に応答すると、同様に、配信情報の配信自体が停止される。
図16は、通知画面が表示されている視聴画面300の一例を示す。図示するように、視聴画面300上に、通知画面98が重畳して表示されている。この通知画面98は、通知が届いたために画面共有が停止されている旨を視聴ユーザに通知している。また、出力画面の送信が停止されているから、視聴画面300において出力画面210が表示されていた領域には何も表示されなくなり、当該領域が背景領域220となっている。
ここで、一実施形態において、配信情報が制限されて出力画面の送信が停止されているときに、配信ユーザの端末装置30の出力画面210に代えて、予め定められている特定の画像を視聴画面300に表示するように構成することもできる。具体的には、サーバ10において記憶、管理されている特定の画像をサーバ10から視聴ユーザの端末装置30に送信して表示させるようにしても良いし、又は、視聴ユーザの端末装置30に記憶、管理されている特定の画像を当該端末装置30上で表示させるようにしても良い。
このように、一実施形態においては、配信ユーザの端末装置30上で特定のイベントが発生したときには、視聴ユーザの端末装置30に対する配信情報の送信が制限されて、出力画面210が当該端末装置30上で表示されない。従って、電話の着信を通知する画面、プッシュ通知の受信に伴うポップアップ画面、ポップアップ通知、特定のアプリケーションの画面等、ユーザのプライバシに関する情報を出力し得る画面が、視聴ユーザの端末装置30上で出力されてしまうのを抑制することができる。
上述した一実施形態では、特定のイベントが発生して配信情報を制限するときに、出力画面の送信は停止し、出力音声、入力画像及び入力音声の送信は継続するように構成したが、出力画面と同様に、出力音声、入力画像及び入力音声の全部又は一部(例えば、入力画像、又は、出力音声)の送信を停止するように構成することもできる。
上述した一実施形態の画面配信サービスでは、出力画面に加えて、出力音声、入力画像、及び、入力音声を配信情報として視聴ユーザの端末装置30に送信するように構成したが、出力音声、入力画像、及び入力音声の送信は任意であって、これらの一部又は全部を送信しない(例えば、出力画面と出力音声のみを配信情報として送信する)ように構成し得る。
以上説明した本発明の実施形態は、配信ユーザの端末装置30上で出力されている出力画面210を含む配信情報を視聴ユーザの端末装置30に送信し、当該端末装置30上で配信情報を出力し、ユーザのプライバシーに関する情報を出力する特定のイベントが、配信ユーザの端末装置30上で発生したことを検出したときに、配信情報の少なくとも一部の視聴ユーザの端末装置30上での出力を停止する。このように、本発明の実施形態は、特定のイベントが発生したときに配信情報の出力を停止するから、ユーザのプライバシーに関する情報が視聴ユーザの端末装置30上で出力されるのを抑制することができる。つまり、本発明の実施形態は、端末装置の画面の配信中に、ユーザのプライバシーに関する情報が他のユーザの端末装置上で出力されてしまうのを抑制することができる。
本明細書で説明された処理及び手順は、実施形態中で明示的に説明されたもの以外にも、ソフトウェア、ハードウェアまたはこれらの任意の組み合わせによって実現される。より具体的には、本明細書で説明される処理及び手順は、集積回路、揮発性メモリ、不揮発性メモリ、磁気ディスク、光ストレージ等の媒体に、当該処理に相当するロジックを実装することによって実現される。また、本明細書で説明される処理及び手順は、それらの処理・手順をコンピュータプログラムとして実装し、各種のコンピュータに実行させることが可能である。
本明細書中で説明される処理及び手順が単一の装置、ソフトウェア、コンポーネント、モジュールによって実行される旨が説明されたとしても、そのような処理または手順は複数の装置、複数のソフトウェア、複数のコンポーネント、及び/又は複数のモジュールによって実行され得る。また、本明細書中で説明されるデータ、テーブル、又はデータベースが単一のメモリに格納される旨説明されたとしても、そのようなデータ、テーブル、又はデータベースは、単一の装置に備えられた複数のメモリまたは複数の装置に分散して配置された複数のメモリに分散して格納され得る。さらに、本明細書において説明されるソフトウェアおよびハードウェアの要素は、それらをより少ない構成要素に統合して、またはより多い構成要素に分解することによって実現することも可能である。
本明細書において、発明の構成要素が単数もしくは複数のいずれか一方として説明された場合、又は、単数もしくは複数のいずれとも限定せずに説明された場合であっても、文脈上別に解すべき場合を除き、当該構成要素は単数又は複数のいずれであってもよい。