質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

ソケット

TCP/IPにおいて、IPアドレスとサブアドレスであるポート番号を組み合わせたネットワークアドレスのことを呼びます。また、ソフトウェアアプリケーションにおいて、TCP/IP通信を行う為の仮想的なインターフェースという意味もある。

同期

複数のディレクトリに存在するファイルを更新した場合に、すべてのファイルにも更新が行われる事、又は、同じ記憶領域に同時にアクセスして内容の整合性が失われてしまう事をを防ぐ制御などを同期と呼びます。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Q&A

解決済

1回答

872閲覧

Android2台(クライアント)での同期動画再生について

kzzzz

総合スコア7

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

ソケット

TCP/IPにおいて、IPアドレスとサブアドレスであるポート番号を組み合わせたネットワークアドレスのことを呼びます。また、ソフトウェアアプリケーションにおいて、TCP/IP通信を行う為の仮想的なインターフェースという意味もある。

同期

複数のディレクトリに存在するファイルを更新した場合に、すべてのファイルにも更新が行われる事、又は、同じ記憶領域に同時にアクセスして内容の整合性が失われてしまう事をを防ぐ制御などを同期と呼びます。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

0グッド

0クリップ

投稿2020/06/26 05:03

編集2020/06/26 05:11

前提・実現したいこと

PC(サーバ)とAndroid2台(クライアント)へのソケット通信において、
サーバからクライアントへ通信データを送信し、クライアントがデータを受信したら、
同じ動画を同時に再生するといったものを作成しております。

発生している問題・エラーメッセージ

動画は2台とも再生できるのですが、
若干動画の再生にラグがあり同期再生ができておりません。
微妙にずれて再生される。

該当のソースコード

java

1 2private static void PlayVideo(final VideoView videoView) { 3 videoView.setVisibility(View.VISIBLE); 4 videoView.start(); 5 // 再生完了通知があれば最初から再生 6 videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener(){ 7 @Override 8 public void onCompletion(MediaPlayer mp) { 9 // 動画先頭に戻る 10 videoView.seekTo(0); 11 videoView.start(); 12 } 13 }); 14 }

疑問点

・2台のAndroidは異なるものをつかっているので、どうしようもできないスペックの問題なのか?
・VideoViewを同期再生するために違った方法がある?
・通信だとどうしても、ラグが生じてしまう?AndroidStudioで同期再生は無理?

補足情報(FW/ツールのバージョンなど)

何か必要な情報等ございましたら、おっしゃってください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

動画がサーバにあり、随時送信している場合、データの送信は、端末毎に別処理ですので、通常の方法では、完全な同期はできません。
やろうと思ったら、端末側から、随時、再生情報(再生中フレームカウントなど)と通信速度から、フレームを調整するなど、高度な処理が必要となるでしょう。

動画がクライアントに保存されている場合も、端末のスペックやバックグラウンド処理の差により、完全に同時に再生を開始しても、ずれが発生します。
調整するには、同期信号のやり取りと、フレーム飛ばしなどによる、再生調整が必要になるので、動画再生処理を自作する必要があるでしょう。

投稿2020/06/27 04:01

YT0014

総合スコア1708

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kzzzz

2020/06/29 04:54

動画はクライアント側に保存されている状態で、作成しておりました。 色々調べている感じ、再生を調整する方法を実装するぐらいしかなさそうでした。 回答ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問