Prog2_10th

Similar documents
Prog2_10th

Prog2_6th

Prog2_5th

Prog2_6th

Prog2_2nd

Prog2_9th

Prog2_2nd

Prog2_6th

Prog2_12th

ボタンイベントアプリイベント処理を含むアプリとして, ボタンをもち, ボタンを押すと文字列を表示するアプリを作る. このアプリは,HelloWorld アプリを改造して作成するため, アプリ作成の途中からの手順を示す. 1. ボタンの設置 (1) レイアウトにボタンを追加するパレットの フォーム ウ

ファイルを直接編集する画面を切り替えることができる. 図 3 標準のレイアウトを削除する (2) グラフィカル レイアウト画面で LinearLayout(Vertical) を追加するパレットウィンドウの レイアウト の中にある LinearLayout(Vertical) をドラッグして, 編集

プロジェクト毎に名前を指定する ( ここでは AndroidTest) 動作可能な最低バージョン メインターゲットのバージョン すべて設定してクリック チェックを外す クリック

Prog2_15th

26 editor.putint(pref_count_key, executecount); 27 // 変更した Preference を確定させる 28 editor.commit(); 29 } (c) 実行の様子実装して実行した様子を図 1 と図 2 に示す. 一度実行するごとに, カウン

Prog1_6th

Prog2_5th

Hello, Android

JavaプログラミングⅠ

Microsoft Word - Android_SQLite講座_画面800×1280

Prog2_4th

Java講座

Prog1_15th

Javaプログラムの実行手順

Prog1_2nd

Taro-korattsu.jtd

Prog1_3rd

android2.indd

プログラミング基礎I(再)

HCI プログラミング 8 回目ボタン チェックボックス ラジオボタン 今日の講義で学ぶ内容 ボタンとアクションイベント ボタンのカスタマイズ チェックボックスとラジオボタン ボタンとアクションイベント 1 ボタンを配置してみましょう ボタンは ラベルと同じようにフォントやその色 画像の貼り付けなど

Microsoft PowerPoint - chap10_OOP.ppt

Microsoft PowerPoint ppt

Android Layout SDK プログラミング マニュアル

Prog2_9th

1: Android 2 Android 2.1 Android 4 Activity Android Service ContentProvider BroadcastReceiver Activity ( ): Android 1 Android Service ( ): ContentProv

実行か保存の確認が表示されたら 実行 をクリックしてダウンロードを開始します ダウンロード完了後 インストーラが起動してインストールが始まります 保存した後に実行してインストールしても構いません ユーザーアカウント制御による実行の警告が表示されたら はい をクリックしてインストールを続行して くださ

Java 基礎問題ドリル ~ メソッドを理解する ~ 次のプログラムコードに 各設問の条件にあうメソッドを追加しなさい その後 そのメソッドが正しく動作することを検証するためのプログラムコードを main メソッドの中に追加しなさい public class Practice { // ここに各設問

PowerPoint プレゼンテーション

MasterDetailFlow SettingsActivity 2. Android Lint Checks 以前のバージョンよりコンパイルのチェックが厳しくなりました このような厳しいチェックを Android Lint Checks と言います Abdroid プログラミング Bible で

Microsoft Word - Android_DI講座_画面800×1280

た場合クラスを用いて 以下のように書くことが出来る ( 教科書 p.270) プログラム例 2( ソースファイル名 :Chap08/AccountTester.java) // 銀行口座クラスとそれをテストするクラス第 1 版 // 銀行口座クラス class Account String name

ガイダンス

HCI プログラミング 10 回目テキストフィールドとキーイベント 今日の講義で学ぶ内容 テキストフィールドの利用 キーイベントの処理 テキストフィールドの利用 1 テキストフィールドを配置してみましょう テキストフィールドを用いることにより 数値や文字列などのデータ入力が可能になります ソースファ

平成 30 年度 プログラミング研修講座 岩手県立総合教育センター

Microsoft PowerPoint - Pro110111

Prog2_10th

プログラミング入門1

Prog1_10th

Microsoft Word - A05_AndroidプログラミングJUMP_画面800×1280

Microsoft PowerPoint - prog03.ppt

JavaプログラミングⅠ

Microsoft PowerPoint - Tutorial_6.ppt

Microsoft PowerPoint Java基本技術PrintOut.ppt [互換モード]

プログラミング入門1

Microsoft Word - Android_SQLite講座_画面800×1280

(1) プログラムの開始場所はいつでも main( ) メソッドから始まる 順番に実行され add( a,b) が実行される これは メソッドを呼び出す ともいう (2)add( ) メソッドに実行が移る この際 add( ) メソッド呼び出し時の a と b の値がそれぞれ add( ) メソッド

Microsoft Word - Android_DI講座_画面800×1280

そして 取得した OutputStream インスタンスを使い 文字コードは UTF-8 として PrintWriter インスタンスを生成して あとは PrintWriter.append() で書き込みたい文字 列を渡して close() で保存する というだけです ファイルの読込み方法 それで

JAVA入門

AquesTalk10 Android マニュアル

TestDesign for Web

Microsoft PowerPoint - OOP.pptx

Javaセキュアコーディングセミナー2013東京第1回 演習の解説

基礎計算機演習 実習課題No6

第1章 ビジュアルプログラミング入門

第 1 章 : はじめに RogueWave Visualization for C++ の Views5.7 に付属している Views Studio を使い 簡単な GUI アプリケーションの開発手順を紹介します この文書では Windows 8 x64 上で Visual Studio2010

JavaプログラミングⅠ

Vuzix M100 SDKインストールガイド

Java言語 第1回

GUIプログラムⅣ

Prog2_2nd

内容 1 はじめに インストールの手順 起動の手順 Enterprise Architect のプロジェクトファイルを開く 内容を参照する プロジェクトブラウザを利用する ダイアグラムを開く 便利な機能.

Another Activity オブジェクトは生成されてもいないのである これは 後述の onpause メソッ ドの説明からも明らかである 翻訳 : A の onpause から返ってこない限り B は create されない ため ここで長い処理は行ってはならない 実際にトレースをおこなってみ

LogisticaTRUCKServer-Ⅱ距離計算サーバ/Active-Xコントロール/クライアント 概略   

UMLプロファイル 機能ガイド

データ構造とアルゴリズム論

Eclipse 操作方法 (Servlet/JSP 入門補助テキスト)

目次 Webフォルダの特長と仕組み 3 Webフォルダの開き方 4 1 児童生徒の場合 4 2 先生の場合 5 Webフォルダ機能 ファイルのアップロード ( 保存 ) 6 ファイルのダウンロード 7 ファイルの開き方 8 新規フォルダの作成 9 フォルダ ファイルの名称の変更 10 フォルダ ファ

解答上の注意 1 解答は 解答 紙の問題番号に対応した解答欄にマークしなさい 2 選択肢は 問ごとに 意されています 問 1の選択肢は 問 2で使 しません 3 選択肢は量が多いため 探しやすさの観点よりグループ分けされています グループ分けに合わせて解答欄が区切られていますが 横 1 列で問題 1

Microsoft PowerPoint - prog09.ppt

Microsoft Word - VB.doc

PowerPoint プレゼンテーション

Windows8.1基礎 ファイル管理

JavaプログラミングⅠ

Microsoft PowerPoint - prog09.ppt

PowerPoint Presentation

教材ドットコムオリジナル教材 0から始めるiアフ リ リファレンス i アプリ簡易リファレンス ver i アプリ Java 独自のメソッド (1)iアプリの命令を使えるようにする import com.nttdocomo.ui.*; (2) 乱数を使う import java.u

C#の基本

Android でサービスしよう! 日本 Android の会 2 月 21 日大阪セミナ- 有山圭二 ( 有限会社シーリス )

Enterprise Architect 12.0 機能ガイド

基本情報STEP UP演習Java対策

第 2 章インタフェース定義言語 (IDL) IDL とは 言語や OS に依存しないインタフェース定義を行うためのインタフェース定義言語です CORBA アプリケーションを作成する場合は インタフェースを定義した IDL ファイルを作成する必要があります ここでは IDL の文法や IDL ファイ

補足資料 インテントによるアプリケーションとアクティビティの呼出し Android アプリのキモとなるインテントとは何? インテント ( 呼び出し要求 ) とは Android 独自の機能です 簡単にいえばアプリケーションや他のアクティビティを呼び出す機能ですが 他のアプリケーションを機能や扱えるデ

玉転がしタブレット端末の特徴の一つとして, センサを使った動作や, 指による画面操作がある. それらを活用して, 図形を動かすアプリの例を示す. 1. プロジェクトを作る Tama アプリケーションを作る,Tama プロジェクトを作る. 図 1 プロジェクト作成 プロジェクトの構成を設定する. 図

デジタル表現論・第4回

GEC-Java

スライド 1

Java プログラミング Ⅰ 7 回目 switch 文と論理演算子 条件判断文 3 switch 文 switch 文式が case の値と一致した場合 そこから直後の break; までを処理し どれにも一致しない場合 default; から直後の break; までを処理する 但し 式や値 1

「Android Studioではじめる 簡単Androidアプリ開発」正誤表

目次 はじめに... 3 システムの必要条件... 4 ライセンス認証... 4 アクティベーション... 6 開発... 7 手順 1. アプリケーションの作成... 7 手順 2. データソースの作成と代入... 7 手順 3. テンプレートの作成 手順 4. レポートビューアの追加

Microsoft PowerPoint - lec06 [互換モード]

Transcription:

2017 年 12 月 7 日 ( 木 ) 実施 効果音の付加 SoundPool とは Android には音を処理するクラスが複数用意されているが, その中で SoundPool は, 予め音のデータをメモリ上に読み込んで再生するため, 長い音楽よりも短い音を扱うのに適している また,SoundPool では遅延が無いので, 効果音を付加したい場面で用いられる 授業の準備 1)Android Studio の初期設定 Android Studio を起動し, Configure 設定のインポート を選択し, 第 3 回の教材の p.5 に従って設定をインポートする 2) プロジェクトの新規作成 Application name ( アプリ名 ) を Prog_9th ( 先頭は大文字, _ は下線), Company Domain を b7a0xxx.cuc.ac.jp に書き換え, Project Location の先頭の C: Users b7a0xxx を H: に書き換えて, 次へ ボタンを押す 第 1 回と同様に Minimum SDK では API 22 を選択する( 第 1 回教材 p.8) Activity name は MainActivity9 とする 課題 今回は, 様々なアクティビティから SoundPool を利用可能なクラスを作成し, 効果音の付加の 基本を学ぶ Android アプリの作成 H: AndroidStudioProjects Prog_9th app src main resで, raw という名前のフォルダを作成し, ダウンロードした音データファイル ( フリーソフトウェア SWave で授業担当者が自作したもの ) をコピーして貼り付ける Project タブを開いて, これらの音データファイルが見えていることを確認する - 1 -

Project タブを開いた状態で, java jp.ac.cuc.b7a0xxx.prog_9th と選択した上で, ファイル New Java Class と選択する クラスの Name: を SoundEffect とする SoundEffect.java に次の内容を付け加える (pp.2-3) private static final int[] soundres = {R.raw.jm_piu, R.raw.jm_picon, R.raw.jm_bang; private AudioAttributes aa; private SoundPool soundpool; private int[] soundid = new int[soundres.length]; boolean loaded = false; public SoundEffect(Context context) { aa = new AudioAttributes.Builder().setUsage(AudioAttributes.USAGE_GAME).build(); soundpool = new SoundPool.Builder().setAudioAttributes(aA).setMaxStreams(1).build(); soundpool.setonloadcompletelistener(new OnLoadCompleteListener() { @Override public void onloadcomplete(soundpool soundpool, int sampleid, int status){ loaded = true; ); - 2 -

for (int i = 0; i < soundres.length; i++) soundid[i] = soundpool.load(context, soundres[i], 1); public void destroy() { for (int i = 0; i < soundres.length; i++) soundpool.unload(soundres[i]); soundpool.release(); public void playsoundeffect(int i) { int loop; if (i == 1) loop = 2; else loop = 0; if (loaded) soundpool.play(soundid[i], 1.0f, 1.0f, 1, loop, 1.0f); 上記の内容を記述していく途中で, コンストラクタの中の soundpool に働きかけている setonloadcompletelistener メソッドの引数の OnLoadCompleteListener にカーソルを合わせ ると, 何を選択するかという問いが現れるので,Alt キーを押しながら Enter キーを打つ android.media.soundpool を選択する - 3 -

- 4 -

== 説明 ============================================================== フィールド soundres リソースにある音データここでは要素 3 個 (soundres[0],soundres[1], soundres[2] ) の配列 aa AudioAttributes クラスのインスタンス soundpool SoundPool クラスのインスタンス soundid load メソッドで, 音データをメモリ上に読み込んだ際に割り当てられる整数ここでは要素 3 個 (soundid [0],soundID [1],soundID [2] ) の配列 loaded 音データの読み込みが完了した際に真理値を true にセットする ( 初期値は false) コンストラクタ SoundEffect(Context context) aa = new AudioAttributes.Builder() AudioAttributes オブジェクトの Builder クラス.setUsage(AudioAttributes.USAGE_GAME) 音データのタイプを記述.build(); 音データについて記述された属性を統合して, オブジェクトを生成 soundpool = new SoundPool.Builder() SoundPool オブジェクトの Builderクラス.setAudioAttributes(aA) 音データの属性として何を使うかを指定.setMaxStreams(1) 同時に再生する音データの最大数(1 以上の整数 ).build(); オブジェクトを生成 setonloadcompletelistener メソッド OnLoadCompleteListener インタフェースからのコールバックを受け止める onloadcompleteメソッド 音データの読み込みが完了すると呼ばれる load(context, soundres[i], 1) 音データを読み込むための SoundPool クラスのメソッド第 1 引数にはコンテキスト ( アプリの属性 ), 第 2 引数にはリソースの ID, 第 3 引数には音の優先順位 ( 現状ではダミー, 将来的な互換性のために 1としておく ) を指定する destroy() メソッド unload(soundres[i]) メモリ上に読み込んでいた音データのリソースを解放するための SoundPool クラスのメソッド release() SoundPoolクラスのインスタンスが利用していたメモリの領域全体を解放するための SoundPoolクラスのメソッド playsoundeffect(int i) play(soundid[i], 1.0f, 1.0f, 1, loop, 1.0f) 音データを再生するための SoundPool クラスのメソッド第 1 引数には load メソッドで返される soundid, 第 2 引数には左側のボリューム (0.0~1.0), 第 3 引数には右側のボリューム (0.0~1.0), 第 4 引数には音の優先順位, 第 5 引数には繰り返しの数 (0 は繰り返しなし,-1 は無限ループ ), 第 6 引数には再生レート (0.5~2.0, 標準は 1) を指定する ====================================================================== * AudioAttributes.Builder についての詳細は,https://developer.android.com/reference/ android/media/audioattributes.builder.html を参照 - 5 -

** SoundPool.Builder についての詳細は,https://developer.android.com/reference/ android/media/soundpool.builder.html を参照 activity_main9.xml のタブを開く 先ず元から貼り付けられている Hello World! と表示されているテキストビューを選択し, Delete キーで削除する ( 第 2 回教材 p.6) Palette の Layout から RelativeLayout をドラッグして貼り付ける( 第 2 回教材 p.6) Widgets から TextView を貼り付ける このテキストビューの Properties の text 欄の ボタンを押して, 出てきた Resources では Add new resource New string Value を選択して, その値を変更する textview Resource name: click Resource value: ボタンをクリック Widgets から Button を 3 個ドラッグして配置する ボタンを選択し,Properties の text 欄の ボタンを押して, 出てきた Resources では Add new resource New string Value を選択して, その値を変更する button Resource name: Sbt1 Resource value: Piu! button2 Resource name: Sbt2 Resource value: Picon! 3 button3 Resource name: Sbt3 Resource value: Bang! MainActivity9.java に色付きの枠の箇所を付け加える (pp.7-8 の図 ) - 6 -

- 7 -

それぞれの色の枠内を次に示す public static final int SOUND_PIU = 0; public static final int SOUND_PICON = 1; public static final int SOUND_BANG = 2; private SoundEffect soundeffect; Context context = getapplicationcontext(); soundeffect = new SoundEffect(context); Button btn = (Button)this.findViewById(R.id.button); btn.setonclicklistener( new View.OnClickListener() { ); @Override public void onclick(view v) { soundeffect.playsoundeffect(sound_piu); Button btn2 = (Button)this.findViewById(R.id.button2); btn2.setonclicklistener( new View.OnClickListener() { ); @Override public void onclick(view v) { soundeffect.playsoundeffect(sound_picon); Button btn3 = (Button)this.findViewById(R.id.button3); btn3.setonclicklistener( new View.OnClickListener() { ); @Override public void onclick(view v) { soundeffect.playsoundeffect(sound_bang); - 8 -

@Override protected void onpause() { super.onpause(); soundeffect.destroy(); == 説明 ============================================================== 1) 橙色の枠内 MainActivity9 クラスのフィールド SOUND_PIU,SOUND_PICON,SOUND_BANG SoundEffect クラスの playsoundeffect メソッドの引数を分かり易くするために, それぞれの値を 0,1,2に固定した変数 soundeffect SoundEffectクラスのインスタンス 2) 赤色の枠内 oncreate メソッド内の記述 context Contextクラスのインスタンス getapplicationcontext() コンテキストを取得して返すための Context クラスのメソッド 3) 水色の枠内 onpause メソッド 別のアクティビティが開始された時に呼び出されるメソッドここに SoundEffect クラスの destroyメソッドを適用し, リソースを解放する ====================================================================== 保存 のアイコンをクリックして, 全てのファイルを上書き保存し, 実行ボタンをクリックする それぞれのボタン を押してみる - 9 -

activity_main9.xml の保存場所 H: AndroidStudioProjects Prog_9th app src main res layout SoundEffect.java 及び MainActivity9.java の保存場所 H: AndroidStudioProjects Prog_9th app src main java jp ac cuc b7a0xxx prog_9th 提出物 : 1) 画面のレイアウト設定ファイル activity_main9.xml をメ-ルに添付する 2) SoundEffectのソースファイル SoundEffect.java をメ-ルに添付する 3) アクティビティのソースファイル MainActivity9.javaをメ-ルに添付する - 10 -