8.実機で実行 8-1 カメラ・録音関係 1.写真の撮影 A. マニフェストの設定 【 AndroidManifest.xml 】 ・・・ <uses-permission android:name= "android.permission.WRITE_EXTERNAL_STORAGE" />"

Slides:



Advertisements
Similar presentations
Linux on System z & z/VM IBM Japan Systems Engineering Co., Ltd. リソースグ ループ #2 資源間のリレーションシップ(関係)  AntiCollocated 関係 ソースリソースとターゲットリソースは同一ノード上で同時に起動できない.
Advertisements

ヴァウドットコム株式会社 ObjectIN 取引先一括メンテナンス. Biz Rule: データ入力チェック B iz Apply: データベース連携 COM +イベントによる 代替オペレーション ポーリング方式でなく アプリケーション監視による 最新データの同期機能 Biz Exchange (注.
物理演算を利用したビデオエフェクタの 作成 浅野益弘. 研究内容 経緯 NiVE ( Nico Visual Effects )用のエフェ クトプラグインの作成 本プラグインにより動画作成にかかる 時間と手間の短縮と省力化を目指す.
7.n次の行列式   一般的な(n次の)行列式の定義には、数学的な概念がいろいろ必要である。まずそれらを順に見ていく。
第 3 回 iPhone アプリ開発勉強会 Objective-C 基礎講座 - インスタンスメソッド - 三井 相和.
9.線形写像.
第 4 回 iPhone アプリ勉強会 ~Clock 〜 三品 陽平. はじめに 前準備 チュートリアル: Clock – ビュー・アイテムの作成 – アウトレットやアクションの接続 – タイマーの作成 – 時刻の取得 – ビューの回転 – アラーム機能の追加 – タッチ座標の取得 – アラーム音の再生と停止.
時間的に変化する信号. 普通の正弦波 は豊富な情報を含んでいません これだけではラジオのような複雑な情報 を送れない 振幅 a あるいは角速度 ω を時間的に変化 させて情報を送る.
5.連立一次方程式.
相関.
第3回 iPhone アプリ勉強会 〜 Smash 〜 伊藤 竜太. はじめに 前準備 チュートリアル: Smash – ステータス・バーの消去 – アウトレットやアクションの接続 – タイマーとアニメーション作成 – フレームワークの追加 本勉強会で使用する教科書 1.
音当て Game 時田 大樹 飛山 雄太郎. 作品の目的 入力として、スイッチを押すと音がスピー カーから流れ、スイッチを離すと、音が止 まる仕組みとなっている。
ノイズ. 雑音とも呼ばれる。(音でなくても、雑 音という) 入力データに含まれる、本来ほしくない 成分.
第7回 iPhone アプリ勉強会 画像処理クラスの作成 縣 禎輝. はじめに 画像処理クラスの作成及び動作.
清水彰一 写真の表示. はじめに 画像を Photo Albums から選択し表示するアプリ 手順 1. Xcode でプロジェクトの作成 2. Interface Builder で UI 部品を配置 3. Xcode で必要なクラスを定義 4. 各 UI 部品の結びつきのための変数を IBOutlet.
フーリエ係数の性質. どこまで足す? 理想的には無限大であるが、実際に はそれは出来ない これをフーリエ解析してみる.
本宮市立白岩小学校. 1 はじめに 2 家庭学習プログラム開発の視点 ① 先行学習(予習)を生かした 確かな学力を形成する授業づく り ② 家庭との連携を図った家庭学習の習慣化.
フーリエ級数. 一般的な波はこのように表せる a,b をフーリエ級数とい う 比率:
レイアウト非依存な 実時間カメラベース文字認識 岩村雅一 辻 智彦 堀松 晃 黄瀬浩一. IMP Web カメラ 文書 リアルタイム に 認識結果を出 力 キャプチャ 実時間カメラベース文字認識システム 1 秒間に 200 ~ 250 文字程度認識可能.
Excelによる積分.
1 6.低次の行列式とその応用. 2 行列式とは 行列式とは、正方行列の特徴を表す一つのスカ ラーである。すなわち、行列式は正方行列からスカ ラーに写す写像の一種とみなすこともできる。 正方行列 スカラー(実数) の行列に対する行列式を、 次の行列式という。 行列 の行列式を とも表す。 行列式と行列の記号.
計算のスピードアップ コンピュータでも、sin、cosの計算は大変です 足し算、引き算、掛け算、割り算は早いです
線形符号(10章).
1 0章 数学基礎. 2 ( 定義)集合 集合については、 3セメスタ開講の「離散数学」で詳しく扱う。 集合 大学では、高校より厳密に議論を行う。そのために、議論の 対象を明確にする必要がある。 ある “ もの ” (基本的な対象、概念)の集まりを、 集合という。 集合に含まれる “ もの ” を、集合の要素または元という。
複素数.
1 0章 数学基礎. 2 ( 定義)集合 集合については、 3セメスタ開講の「離散数学」で詳しく扱う。 集合 大学では、高校より厳密に議論を行う。そのために、議論の 対象を明確にする必要がある。 ある “ もの ” (基本的な対象、概念)の集まりを、 集合という。 集合に含まれる “ もの ” を、集合の要素または元という。
システムプログラム論 課題 大村 廉. 課題 Java を用いて Producer / Consumer 問題を解決する MyBuffer クラスを –Synchronized キーワード –Semaphore クラス (java.util.concurrent.Semaphore) を用いてそれぞれ作りなさい.
信号測定. 正弦波 多くの場合正弦波は 0V の上下で振動する しかし、これでは AD 変換器に入れら れないので、オフ セットを調整して データを取った.
1 9.線形写像. 2 ここでは、行列の積によって、写像を 定義できることをみていく。 また、行列の積によって定義される写 像の性質を調べていく。
3.プッシュダウンオートマトンと 文脈自由文法
ファンクジェネレータ は、 信号発生器です. 足の起こし方 左右に広げて 手前に起こします 裏に電源ケーブルの差し込みくちがある ので、電源ケーブルを指します.
6.符号化法(6章).
IPhone 勉強会 ~ Audio ~ 縣 禎輝. iPhone で音を鳴らす iPhone でサウンドを再生する方法 1) System Sound Service 30 秒以下でファイル容量の小さなサウンド CAF,MP3,WAV,AIFF など 2) AVAudioPlayer フレームワーク,
3.正方行列(単位行列、逆行列、対称行列、交代行列)
第 8 回 iPhone アプリ勉強会 〜タッチイベント〜 縣 禎輝. はじめに タッチイベント – タッチイベントの取得方法 – タッチされた座標を取得 – タッチで画像を動かす 1.
第 6 回 iPhone アプリ勉強会 〜画像の取得と処理〜 縣 禎輝. はじめに カメラアプリを作成 – 基盤となる Interface とアクションメソッドの作成 – 画像の取得先の設定 – 画像の表示と保存 – 画像にエフェクトをかける 参考ウェブサイト –
1 オペレーティングシステム #11 この資料は、情報工学レクチャーシリーズ オペ レーティングシステム 松尾啓志 著(森北出版 株式会社)を用いて授業を行うために、名古屋工 業大学松尾啓志、津邑公暁が作成しました。 パワーポイント 2007 で最終版として保存しているため、変更はで きませんが、授業でお使いなる場合は松尾.
学習者の意欲を高める音読指導の 一時例 1 Speak を使った 音読指導 鈴木政浩(西武文理大学)
論理回路 第1回. 今日の内容 論理回路とは? 本講義の位置づけ,達成目標 講義スケジュールと内容 受講時の注意事項 成績の評価方法.
JPN 311: Conversation and Composition 伝言 (relaying a message)
Analog “ neuronal ” networks in early vision Koch and Yuille et al. Proc Academic National Sciences 1986.
データベース入門 日進高等学校 情報化推進委員会. 表計算ソフトとの比較 表計算ソフト (Excel) データベース ( Access ) 編集 二人目はデータの編集が ロックされる 複数の人が同時にデータ を 編集できる 信頼性 ファイルの数だけ データが存在する データは一つ データ処理 自由.
C言語応用 構造体.
実装の流れと 今後のスケジュール 03k0014 岸原 大祐. システム概要 天気データをもとに、前向き推論をし ていき、親の代わりに子供に服装、持 ち物、気をつけることなどを教える。
あるシミュレーションゲーム 用の AI について 1305105角田 直 磯. どのゲームのAIスクリプト か? マイクロソフト社(2000年製作)の Age of Empires Ⅱ :The Conquerors Expansion (以下 AOC )というリアルタイムストラテジーゲー ムのAIスクリプト作成.
3.多項式計算アルゴリズム べき乗の計算 多項式の計算.
Li 系化合物の結晶育成と電気的性質の測定 - LabVIEW を用いた計測制御システムの開発 - 矢萩研究室 ソ 佐藤 蓉子
THE IMAGE a guide to pseudo-events in america 『幻影の時代』 マスコミが製造する事実 1961 年= 1964 年 (1)テレビ発展期のアメリカ (2)メディア論=テレビ論の台頭の 時期 (3)メディア論を含む現代化論 modernization 『幻影の時代』
移動エージェントプログラムの 動作表示のためのアニメーション言 語 名古屋大学情報工学コース 坂部研究室 高岸 健.
プログラミングⅠ( 2 組) 第 1 回 / pLB1.pptx.
8.任意のデータ構造 (グラフの表現とアルゴリズム)
コンピュータ活用 第9 週 制作技術ー3 : 双方向通信 CGI システムと環境変数. クライアントとサーバーとの間の双方向通信の考え方 URL を送信し て HTML 文書返信 データ送信 (cgi) 入力に対する応答 データ入力 閲覧ソフトか ら 応答内容表示 クライアン ト サーバー データ受.
メニューに戻る メニューに戻る | 前表示スライド 前表示スライド G*power 3 の web ページ Windows はこちら Mac はこちら ダウンロード後,実行してインストール.
お絵描きロボットの研究お絵描きロボットの研究 機械知能システム学科 ロボット工学講座. システム構成 処理部 PC 入力部 タブ レット 出力部 マニピュレー タ セン サ 力覚セン サ.
プログラミング演習( 1 組) 第 8 回
オセロの思考アルゴリズムについて 1103072 岩間 隆浩.
自立型走行ロボットの 設計・製作 AKI-80を用いたアセンブリ言語の プログラミング開発 矢萩・橋本研究室 工E12019 山田 正樹
Kitenet の解析 (110118) 九州大学 工学部 電気情報工学科 岡村研究室 久保 貴哉.
NO!END!NO!CLEAR ! J チーム 渡邊光児 小山内彩子 下山直城. 役割 渡邊光児 ゲームオーバー画面の作成、ライフの絵作成 小山内彩子 ゲーム内のプログラム、主人公と敵と背景作 成 下山直城 タイトル画面の作成.
音の変化を視覚化する サウンドプレイヤーの作成
プログラミングの基礎知識 プログラミングの手順と重要概念 アルゴリズム. プログラミングの手順 コーディング エディタなどでコードを記述 コンパイル・インタープリタ 実行可能な形に翻訳 デバッグ(虫取り、不具合の調整) 完成!
HCC Hair Color Change. メンバー ソ 渋谷麻美 ソ 渋谷麻美 ソ 清野理衣子 ソ 清野理衣子 ソ 三上貴大 ソ 三上貴大.
1 オペレーティングシステム #7 計算機工学 III オペレーティングシステム #7 主記憶管理:主記憶管理基礎 2006/05/26 津邑 公暁.
本文. 考えながら読みましょ う 「いろいろなこと」( 3 行目)は何で すか 「①電話料金はコンビニで支払いをしていま す。いつでも払えますから、便利です。」 「②夕食はコンビニで買います。お弁当やお かずがいろいろありますから。」今、若者に 人気のあるコンビニは、いろいろなことをす るのに非常に便利な場所になった。
創造工学設計 I 電子情報工学科4年(前期) 10回目 ( 25/6/2015) 担当 古山彰一
Camera. Make new project – CameraFun – Give permission to use camera write_external _storage Make two buttons – id takePictureButton – id showLastPicButton.
Factory Method Pattern S. Yukita
8-3 ネットワーク関連 1.メールの送信 暗黙的インテントでメーラを起動 mailto:< メールアドレス> をインテントで渡してアプリを起動。
創造工学設計 I 電子情報工学科4年(前期) 9 回目 ( 18/6/2015) 担当 古山彰一
腎臓移植 腎臓移植の前に、ドナー両方の腎臓は機 能的に良好でなければならない。ドナー の両方の腎臓が機能的に健康であること を保証するために、多数の試験が行われ ている。
Presentation transcript:

8.実機で実行 8-1 カメラ・録音関係 1.写真の撮影 A. マニフェストの設定 【 AndroidManifest.xml 】 ・・・ <uses-permission android:name= "android.permission.WRITE_EXTERNAL_STORAGE" />"

B .関連クラス クラス 概 要 android.hardware.Camera クラス static Camera open() カメラをオープンする void setPreviewDisplay(SurfaceHolder sh) サーフェースをプレビュー画面に設 定する void startPreview() プレビューを開始する。 void stopPreview() プレビューを停止する。 void takePicture(Camera.ShutterCallback shutter,JPEG 保存時の処理を指定して撮影を Camera.PictureCallback raw, 行う。 PictureCallback jpeg) void release() カメラを解放する。 void setParameters(Camera.Parameter pr) パラメータを設定する。

C. サーフェスビュー( SurfaceView )の作成と処理方法 ①サーフェースが作成されたとき( surfaceCreate ) カメラをオープンし、画像サイズを設定する。 ②サーフェースが変更されたとき( surfaceChanged ) プレビュー画面を設定して、プレビューを開始する。 ③サーフェースが破棄されたとき (surfaceDestroy) プレビューを停止し、カメラを解放する。

D. プログラム例(その 1 ) package jp.camera; import java.io.*; import java.util.*; import android.app.*; import android.os.*; import android.view.*; import android.view.View.*; import android.widget.*; import android.hardware.*; import android.hardware.Camera.*;

D. プログラム例(その 2 ) public class CameraActivity extends Activity { Button button; SurfaceView surfaceV; SurfaceHolder surfaceH; Camera camera; /** Called when the activity is first created. public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); LinearLayout LL=new LinearLayout(this); LL.setOrientation(LinearLayout.VERTICAL); setContentView(LL); getWindow().addFlags( WindowManager.LayoutParams.FLAG_FULLSCREEN); button=new Button(this); button.setText(" 撮影 ");

D. プログラム例(その 3 ) surfaceV=new SurfaceView(this); surfaceH=surfaceV.getHolder(); surfaceH.addCallback(new cameraSurfaceHolderCallback()); //surfaceH.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); LL.addView(button); LL.addView(surfaceV); button.setOnClickListener(new cameraClickListener()); } class cameraSurfaceHolderCallback implements public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {

D. プログラム例(その 3 ) try { WindowManager windowM = (WindowManager)getSystemService(WINDOW_SERVICE); Display display=windowM.getDefaultDisplay(); int rot=display.getRotation(); int deg=0; switch(rot){ case Surface.ROTATION_0 : deg= 90; break; case Surface.ROTATION_90 : deg= 0; break; case Surface.ROTATION_180 : deg=270; break; case Surface.ROTATION_270 : deg=180; break; } camera.setDisplayOrientation(deg); camera.setPreviewDisplay(surfaceV.getHolder()); Camera.Parameters param=camera.getParameters(); param.setPreviewSize(width, height); camera.setParameters(param);

D. プログラム例(その 4 ) camera.startPreview(); }catch(Exception e){} public void surfaceCreated(SurfaceHolder holder) { camera = Camera.open(); Camera.Parameters param=camera.getParameters(); List psize=param.getSupportedPictureSizes(); Size s=psize.get(0); param.setPictureSize(s.width,s.height); camera.setParameters(param); public void surfaceDestroyed(SurfaceHolder holder) { camera.stopPreview(); camera.release(); }

D. プログラム例(その 5 ) class cameraClickListener implements public void onClick(View v) { camera.takePicture(null, null, new cameraPictureCallback()); } class cameraPictureCallback implements public void onPictureTaken(byte[] data, Camera camera) { try{ File dir =new File( Environment.getExternalStorageDirectory(), "cameraSample"); if(!dir.exists())dir.mkdir(); File f=new File(dir, "sample.jpeg"); FileOutputStream stream=new FileOutputStream(f); stream.write(data);

D. プログラム例(その 6 ) Toast.makeText(getApplicationContext(), " 写真を保存しました ", Toast.LENGTH_LONG); stream.close(); camera.startPreview(); }catch(Exception e){} }

2.音声の録音 A. マニフェストの設定 【 AndroidManifest.xml 】 ・・・ <uses-permission android:name= "android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name= "android.permission.RECORD_AUDIO" />

B. 音声録音の順序 オーディオソース(マイク)の設定 出力フォーマット( 3GPP )設定 オーディオエンコーダ( AMR_NB )設定

C .関連クラス クラス 概 要 android.media.MediaRecorder クラス MediaRecorder() メディアレコーダ作成 void prepare() 準備 void start() 録音開始 void stop() 録音停止 void reset() 初期化 void release() 開放 void setAudioSource(int source) オーディオソースの設定 void setOutputFormat(int format) 出力フォーマット設定 void setAudioEncode(int coder) オーディオエンコーダ設定 void setOutputFile(String path) 出力ファイル設定 android.os.Environment クラス static File getExternalStorageDirectory() 外部記憶のディレクトリ取得

D. プログラム例(その1) package jp.Audio; import java.io.*; import android.app.*; import android.os.*; import android.view.*; import android.view.View.*; import android.widget.*; import android.media.*; import android.media.MediaPlayer.*; public class RecodeAudioActivity extends Activity { Button[] button=new Button[3]; MediaPlayer mediaPlay; MediaRecorder mediaRec; File dir,file; /** Called when the activity is first created.

プログラム例(その2) public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); LinearLayout LL=new LinearLayout(this); LL.setOrientation(LinearLayout.VERTICAL); setContentView(LL); button[0].setText(" 開始 ");button[0].setEnabled(true); button[1].setText(" 停止 ");button[1].setEnabled(false); button[2].setText(" 開始 ");button[2].setEnabled(true); File dir= new File(Environment.getExternalStorageDirectory(), "AudioSample"); if(!dir.exists()) dir.mkdir(); file=new File(dir,"Audio.3gp"); for(int i=0;i<button.length;i++) LL.addView(button[i]); button[0].setOnClickListener(new StartClickListener()); button[1].setOnClickListener(new PauseClickListener()); button[2].setOnClickListener(new PlayClickListener()); }

プログラム例(その3) public void onResume() { super.onResume(); mediaPlay= new MediaPlayer(); mediaRec=new MediaRecorder(); mediaPlay.setOnCompletionListener(new AudioCompletionListener()); } public void onPause(){ super.onPause();mediaPlay.release(); mediaRec.release(); } class AudioCompletionListener implements OnCompletionListener{ public void onCompletion(MediaPlayer mp){ button[0].setEnabled(true); button[1].setEnabled(false); button[2].setEnabled(true); }

プログラム例(その4) class StartClickListener implements OnClickListener { public void onClick(View v){ button[0].setEnabled(false); button[1].setEnabled(true); button[2].setEnabled(false); try{ mediaPlay.reset(); mediaRec.setAudioSource(MediaRecorder.AudioSource.MIC); mediaRec.setOutputFormat( MediaRecorder.OutputFormat.THREE_GPP); mediaRec.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); String path = file.getAbsolutePath(); mediaRec.setOutputFile(path); mediaRec.prepare(); mediaPlay.setDataSource(path); }catch(Exception e){} mediaRec.start(); }

プログラム例(その5) class PauseClickListener implements OnClickListener { public void onClick(View v){ button[0].setEnabled(true); button[1].setEnabled(false); button[2].setEnabled(true); mediaRec.stop(); mediaRec.reset(); } class PlayClickListener implements OnClickListener { public void onClick(View v){ button[0].setEnabled(false); button[1].setEnabled(false); button[2].setEnabled(false); try{ mediaPlay.prepare(); }catch(Exception e){} mediaPlay.start(); }

3.ビデオの撮影 A. マニフェストの設定 【 AndroidManifest.xml 】 ・・・ <uses-permission android:name= "android.permission.WRITE_EXTERNAL_STORAGE" />

B. ビデオ撮影の順序 ビデオソース(カメラ)の設定 オーディオソース(マイク)の設定 出力フォーマット( 3GPP )設定 オーディオエンコーダ( AMR_NB )設定 フレームレート( 30 )の設定 画像サイズ(幅と高さ)の設定 ビデオエンコーダ( MPEG_4_SP )設定

C .関連クラス クラス 概 要 android.media.MediaRecorder クラス void setVideoSource(int source) ビデオソースの設定 void setVideoEncode(int coder) ビデオエンコーダ設定 void setVideoFrameRate(int rate) フレームレート設定 void setVideoSize(int width, int height) ビデオサイズ設定

D. プログラム例(その1) package jp.video; import java.io.*; import java.util.*; import android.app.*; import android.content.pm.*; import android.os.*; import android.view.*; import android.view.View.*; import android.widget.*; import android.hardware.*; import android.hardware.Camera.*; import android.media.*; public class VideoActivity extends Activity { Button[] button=new Button[2]; SurfaceView surfaceV; SurfaceHolder surfaceH; MediaRecorder mediaR; File dir, file; Camera camera;

プログラム例(その2) /** Called when the activity is first created. public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); LinearLayout LL=new LinearLayout(this); LL.setOrientation(LinearLayout.VERTICAL); setContentView(LL); getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); setRequestedOrientation( ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); dir=new File( Environment.getExternalStorageDirectory(),"VideoSample"); if(!dir.exists())dir.mkdir(); file=new File(dir, "VideoSample.3gp"); surfaceV=new SurfaceView(this); surfaceH=surfaceV.getHolder();

プログラム例(その3) for(int i=0;i<button.length; i++) button[i]=new Button(this); button[0].setText(" 録画 "); button[0].setEnabled(true); button[1].setText(" 停止 "); button[1].setEnabled(false); mediaR=new MediaRecorder(); mediaR.setPreviewDisplay(surfaceH.getSurface()); for(int i=0;i<button.length;i++) LL.addView(button[i]); button[0].setOnClickListener(new ClickListener0()); button[1].setOnClickListener(new ClickListener1()); } public void onDestroy(){ super.onDestroy(); mediaR.release(); } class ClickListener0 implements OnClickListener{ public void onClick(View v) { button[0].setEnabled(false); button[1].setEnabled(true);

プログラム例(その4) try{mediaR.setVideoSource(MediaRecorder.VideoSource.CAMERA); mediaR.setAudioSource(MediaRecorder.AudioSource.MIC); mediaR.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); mediaR.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); String path =file.getAbsolutePath(); camera =Camera.open(); Camera.Parameters param=camera.getParameters(); List psize=param.getSupportedPictureSizes(); Size s=psize.get(0); camera.release(); mediaR.setVideoSize(s.width, s.height); mediaR.setVideoEncoder(MediaRecorder.VideoEncoder.MPEG_4_SP); mediaR.prepare(); mediaR.start(); }catch(Exception e){} }

プログラム例(その5) class ClickListener1 implements OnClickListener{ public void onClick(View arg0) { try{ mediaR.stop(); button[0].setEnabled(true); button[1].setEnabled(false); }catch(Exception e){} }