Browsing articles in "マルチメディア"

カメラプレビューで顔検出を行う

11月 22, 2011   //   by kkato   //   マルチメディア  //  No Comments

Androidでは以前からFaceDetectorクラスを用いることで画像に対して顔検出を行うことが可能でした。Android4.0(ICS)からは、画像(静止画)だけでなく、カメラのプレビュー(動画)に対して顔検出を行うことが新たに可能となりました。

実際に顔検出の処理を行う方法は以下の通りです。1から3の処理を記述する必要があります。

  1. FaceDetectionListenerを実装(onFaceDetectionメソッドでCamera.Faceクラスが渡ってくるので必要な処理を記述)
  2. CameraクラスにFaceDetectionListenerを登録
  3. Cameraクラスに検出開始を指示
  4. 顔が検出されるとFaceDetectionListenerのonFaceDetectionメソッドが呼ばれる

カメラの基本的な使い方は「カメラの使用方法(1)」を参照してください。

※静止画の顔検出については「FaceDetectorを使って顔認識を行う」が参考になります。

それでは続きで説明していきます。

Read more >>

ロック画面からメディアプレイヤーをコントロールする

11月 16, 2011   //   by kseto   //   Android, マルチメディア, ユーザインターフェース  //  No Comments

Android 4.0でサポートされたRemoteControlClientを利用すると
オリジナルのメディアプレイヤーと連携して端末のロック画面から音楽ファイルの再生/停止、
早送り/巻き戻しなどが行うことができるようになります。

上の図のように、ロック画面上に表示される制御パネルをリモートコントロールと呼びます。
このリモートコントロール上には再生中の音楽ファイルの曲名やアーティスト名などの情報も
表示することができます。

オリジナルのメディアプレイヤーでリモートコントロールを利用するためのステップは以下のようになります。

  • ACTION_MEDIA_BUTTONインテントを処理するBroadcastReceiverを登録する
  • RemoteControlClientを生成してシステムに登録する
  • サポートするメディア制御処理を設定する
  • リモートコントロール上に表示するメディア情報を設定する

それでは続きから詳しく説明していきます。

Read more >>

Canvasの状態を保存/復帰させる

5月 27, 2011   //   by @mhidaka   //   マルチメディア  //  No Comments

View#onDrawメソッドの表示処理ではCanvasを用いて描画を行います。複数のBitmapやオブジェクトを表示したい場合は描画ごとに表示位置を計算する必要があります。Canvasの状態を保存する主な目的は描画処理の簡略化です。描画位置がわかりやすくなるほか、任意のタイミングでCanvasの状態を復帰させられるメリットがあります。プログラミング上でのテクニックとしてどうぞ。

  • Canvas#save() 状態を保存する
  • Canvas#restore() 保存した状態へ復帰する

Canvas#save/restoreメソッドで保存できるのは回転、平行移動、図形のゆがみなどを表現するmatrix、表示範囲を指定するclip、の2種類の情報です。アプリケーションのスクリーンショットを取得するように1ピクセルの色情報単位で保存・復帰することはできませんので注意してください。

サンプルコード

以下のソースコードを実行すると画像のように直立したマスコット(緑)と傾いたマスコット(赤)が重なって描画されます。

        @Override
        protected void onDraw(Canvas canvas) {
            canvas.drawColor(Color.WHITE);

            canvas.drawBitmap(mAndroidGreen, 0, 0, mPaint);
            //現在の状態を覚える
            canvas.save();

            //一時的に移動
            canvas.rotate(45);
            canvas.drawBitmap(mAndroidRed, 0, 0, mPaint);

            //移動した分を元に戻す(-45)
            canvas.restore();
        }

6行目で状態を保存します。45度Canvasを回転させてマスコット(赤)を描画した後、13行目で状態を復帰させています。


図示することで、わかりやすく説明できます。図中の1~4の順番でソースコードを実行、描画しています。

  1. Canvas#saveメソッドで現在のCanvas状態(行列matrixと表示範囲clip)を保存
  2. Canvasを45度回転させる
  3. 回転後のCanvasに対してマスコット(赤)をdraw
  4. Canvas#restoreメソッドで元のmatrixと表示範囲に復帰

サンプルコードの全体の解説はつづきから。
Read more >>

VideoViewで動画を再生する

5月 15, 2011   //   by kkato   //   マルチメディア  //  No Comments

今回はVideoViewクラスを使って動画ファイルを再生する方法を紹介します。

再生や一時停止などのコントローラも簡単に利用することができます。もちろん独自のボタンを作成し、再生をコントロールすることも可能です。

  • ローカルのファイル
  • ネットワーク上のファイル

を再生することが可能です。
それでは続きへどうぞ
Read more >>

MediaScannerConnectionを使って画像をギャラリーに反映させる

5月 7, 2011   //   by kkato   //   マルチメディア  //  No Comments

アプリ内で保存した画像をギャラリーに反映させる方法を説明します。

カメラアプリや画像加工アプリを作成してSDカードなどのストレージに画像ファイルを保存した場合、そのままではギャラリーアプリからその画像を確認することができません。

今回の記事の方法でその画像ファイルをギャラリーの反映させることができます。

カメラアプリを作成したい場合や、SDカードに保存する場合は以下の記事が参考になります。

それでは続きでサンプルソースと共に説明します。

Read more >>

タイムラプス撮影を行う

4月 15, 2011   //   by kkato   //   マルチメディア  //  No Comments

「MediaRecorderで録画する」で録画する方法を説明しましたが、今回はそのコードを元にしてタイムラプス撮影を行う方法を説明します。

タイムラプス撮影を行うにはAPIレベル11から追加されたMediaRecorder#setCaptureRateメソッドを利用します。

※タイムラプス撮影とは長い時間をかけて少しずつ動いていく対象を、一定時間ごとに1フレームずつ、ゆっくりと撮影していく方法です。撮影を終えた映像を通常の30fps(フレーム/秒)で再生することで早送りと同様の効果が得られます。

専用のビデオカメラで1時間に1フレームを撮影するなどの設定もできますが、AndroidでMediaRecorderを用いた方法では1秒間に数フレーム撮影するところまでしか速度を落とせません。用途が限られてしまうかもしれませんがアイデア次第で活用できる機能だと思います。

今回のサンプルコードはこちらになります。

それでは続きでサンプルコードを説明します。

Read more >>

MediaRecorderで録画する

4月 3, 2011   //   by kseto   //   マルチメディア  //  No Comments

「MediaRecorderで録音する」ではMediaRecorderを使った音声の記録について紹介しました。
MediaRecorderでは音声の記録と同じような手順でカメラからの映像を記録することが可能です。

MediaRecorderの状態遷移

録音の場合と同様に録画の場合でもMediaRecorderは以下のような状態遷移図に従って動作します。
状態に応じて適切なメソッドを呼び出すことで、次の状態へと遷移します。

録画に関連するメソッドとサンプルコードの紹介は続きからどうぞ。

Read more >>

BitmapRegionDecoderクラスで画像を切り出す

3月 16, 2011   //   by kkato   //   マルチメディア  //  No Comments

Android SDK 2.3.3(API レベル10)からBitmapRegionDecoderクラスが追加されました。

BitmapRegionDecoderクラスは用意した画像(JPEG形式,PNG形式)を任意の矩形で切り抜いてBitmapクラスを取得することができます。

それでは続きへどうぞ
Read more >>

ToneGeneratorでトーンを鳴らす

2月 26, 2011   //   by kseto   //   マルチメディア  //  No Comments

ToneGeneratorクラスを使うと様々なトーンを鳴らせることができます。
トーン信号で動作する機器をAndroidアプリから制御したいような場合に利用することが可能です。

詳細は続きからどうぞ。

Read more >>

FaceDetectorを使って顔認識を行う

2月 16, 2011   //   by kkato   //   マルチメディア  //  No Comments

Androidのフレームワークには標準で顔認識を行ってくれるクラスがあります。

FaceDetectorクラスを使うことによって簡単に、画像の中の顔の数や、その位置を得ることができます。

それでは続きで説明していきます。

Read more >>

ページ:12»

技術書新刊 発売中

アンドロイドアカデミアには、CIやテスト、互換検証など実務に生きるノウハウをあつめています

技術書新刊 発売中

Android Next!はAndroid 7.0に対応したはじめての技術書です!


The Web Explorer 2はCSSの中央寄せやWebAudioなど未来を読み解く一冊です


Revised TypeScript in DefinitelylandはTypeScript 2.0(β)に対応した解説書です。インストールから型定義まで幅広くサポートしています


技術書をかこう!はエンジニアらしい執筆環境を構築、HowTo本です