Prog2_10th

Similar documents
Prog2_10th

Prog2_6th

Prog2_6th

Prog2_5th

Prog2_9th

Prog2_2nd

Prog2_2nd

Prog2_6th

Prog2_12th

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

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

Prog2_15th

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

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

JavaプログラミングⅠ

Hello, Android

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

Prog2_4th

Prog1_6th

Java講座

Javaプログラムの実行手順

Prog2_5th

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

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

Prog1_15th

Prog1_3rd

Microsoft PowerPoint - chap10_OOP.ppt

Prog1_2nd

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

Microsoft PowerPoint ppt

android2.indd

プログラミング入門1

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

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

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

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

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

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

プログラミング入門1

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

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

PowerPoint プレゼンテーション

Java言語 第1回

Prog2_9th

Prog2_10th

JavaプログラミングⅠ

TestDesign for Web

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

Microsoft PowerPoint - Pro110111

AquesTalk10 Android マニュアル

Prog1_10th

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

Microsoft PowerPoint - prog03.ppt

< F2D837A815B B835789DB91E882542E6A746463>

JAVA入門

ガイダンス

Microsoft PowerPoint - OOP.pptx

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

本書は INpMac v2.20(intime 5.2 INplc 3 Windows7/8/8.1に対応 ) の内容を元に記載しています Microsoft Windows Visual Studio は 米国 Microsoft Corporation の米国及びその他の国における登録商標です

Microsoft PowerPoint - Tutorial_6.ppt

Microsoft Word - VB.doc

Taro-korattsu.jtd

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

Microsoft Word - USB60BCR_10.doc

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

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

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

ダウンロードした JDK の exe ファイルをダブルクリックしてインストールします 以下の画面が表示されますので [ 次 ] ボタンをクリックします 次の画面が表示されますので [ 次 ] ボタンをクリックします

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

Microsoft Word - Android開発環境構築.doc

Minecraftプログラミングコース 環境構築 Windows

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション

プレサリオ ステップアップ

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

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

目次 第 1 章概要....1 第 2 章インストールの前に... 2 第 3 章 Windows OS でのインストール...2 第 4 章 Windows OS でのアプリケーション設定 TP-LINK USB プリンターコントローラーを起動 / 終了するには

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

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

Prog2_2nd

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

プレポスト【問題】

JavaプログラミングⅠ

Microsoft PowerPoint - kougi4.ppt

MMO ゲームパッド JC-DUX60BK ドライバー設定ガイド このドライバー設定ガイドは JC-DUX60BK に付属のドライバーを使った 各ボタンやスティックへの機能割り当てや連射の設定などの操作について説明しています ドライバーのインストール方法については JC-DUX60BK に付属のユー

メソッドのまとめ

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

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

GUIプログラムⅣ

Enterprise Architect 12.0 機能ガイド

JavaプログラミングⅠ

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

基本情報STEP UP演習Java対策

C#の基本

2 / 26 平成 26 年 4 月 11 日 ( 金 ) 午後 1 時 9 分 Visual C Express の使用法 ( 東海大学理学部物理学科 ) 無償で利用できる開発環境 (Windows XP 以降 ) Visual Studio 2010 Express

メソッドのまとめ

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

Microsoft PowerPoint - guidance.ppt

Agileイベント・フレームワークとOracle BPELを使用したPLMワークフローの拡張

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

Transcription:

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

Project タブを開いて, これらの音データファイルが見えていることを確認する Project タブを開いた状態で, java jp.ac.cuc.b6x0004.prog_9th と選択した上で, ファイル New クラス と選択する クラスの 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; ); for (int i = 0; i < soundres.length; i++) - 2 -

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) を指定する ====================================================================== - 5 -

* AudioAttributes.Builder についての詳細は,https://developer.android.com/reference/ android/media/audioattributes.builder.html を参照 ** SoundPool.Builderについての詳細は,https://developer.android.com/reference/ android/media/soundpool.builder.html を参照 activity_main9.xml のタブを開き, Hello World! と表示されているテキストビューをダ ブルクリックし, ボタンを押して出てきた Resources では New Resource New string Value を選択して, その値を変更する Resource name: click Resource value: ボタンをクリック Palette の Widgets から Button をドラッグして配置する ボタンをダブルクリック し, ボタンを押して出てきた Resources では 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 -

提出物 : 1) 画面のレイアウト設定ファイル activity_main9.xml 2) SoundEffect のソースファイル SoundEffect.java 3) アクティビティのソースファイル MainActivity9.java - 10 -