先日、京都GTUGで開催されたAndroid Hackathonに参加してきました。私は所属したチームは3位入賞です。アプリとしてはウケ狙いのものでしたが、サウンド出力や音声認識入力の機能も実装していちおうシステムとしてはちゃんと動きます。
個人的にこういった勉強会に参加して、最新の技術動向に実装レベルでついていくように心がけているのですが、Andoridは未踏のエリアでしたので今回の収穫は大です。基本的なところは理解でき、あと何を理解するべきかも見えてきたので、ラボでの実装にも生かしたいと思ってます。本BLOGでも小出しにネタを取り上げます。
2011-05-31
Androidの画面をPCの画面にミラーする方法
Androidで開発したソフトを、プレゼンテーションで紹介したい時がありますよね。どうやったらいいか、、、良いソフトがあります。
これをインストールすれば、PCの画面に実機の画面がリアルタイムに反映されます(1つのWindowとして)。
これをインストールすれば、PCの画面に実機の画面がリアルタイムに反映されます(1つのWindowとして)。
注意点は、Android SDKのadb.exeにパスが通ってないといけないので、
- パスを通す
- adb.exeがある場所にこのファイルを置く
のどちらかをする必要があります。また、実行時には -a コマンドを打つことで色が問題なく投影されるはずです。実行コマンドは
- java -jar asm.jar -a
でOKです。
2011-05-25
Androidでのサウンドファイル再生を試みた
表題のとおりAndroidで音声ファイルの再生を試みたのだが、しょうもないところでつまづいたのでメモ書き。
エミュレーターの設定
サウンドファイルを再生するには、
エミュレーターの設定
サウンドファイルを再生するには、
- エミュレータオプションで –useaudioを指定する
再生の手順
基本的には下記の処理でオッケイということになる。
MediaPlayer mp = MediaPlayer.create(this, R.raw.????); mp.prepare(); // 準備(ここは注意点。後述の説明を読む) mp.start(); // 再生ただ、prepareメソッドでちょっとハマった。最初、この記述でプログラムを動かすと予期せぬエラーがでて再生できない。リソースの読み取りタイミングに問題があるのかなーとか思ってたら、どうやらprepareメソッドには次の注意点があるようだ。
- 上記のようにcreateメソッドをつかってMediaPlayerのインスタンスを生成した場合、既にprepareの状態になっている。この状態でprepareメソッドを呼んではいけない
- MediaPlayerクラスのインスタンスを new することで生成した場合は、prepareメソッドを呼ばなければならない。
2011-05-23
[C#] ファイルアップロードプログラム ~WebClientクラスを利用~
C#でのウェブサーバへのファイルのアップロードは次のコードでできます。
//送信するファイルのパス string filePath = "C:\\Users\\ochi\\Pictures\\snapshot.jpg"; //送信先のURL string url = "http://*********************"; System.Net.WebClient wc = new System.Net.WebClient(); wc.Headers.Add("Content-Type", "image/jpeg"); byte[] resData = wc.UploadFile(url, filePath);これが一番シンプルな方法でしょう。
GWT 移行時のバージョン違いで出るエラー
GWTは発展途上のライブラリーですから、バージョンは上がってきます。開発時に利用していたバージョンと最新バージョンにズレが発生することが多々あり、その際、最新バージョンに変えようというデキ心がよく起こったりします。それがいいかどうかは状況にもよりますが、移行時にきちんとバージョンを合わせないとエラーができます。下記のようなエラーは、バージョン違いの時のエラーです。
Loading modules com.eric.gwttest.gwt.ApplicationCommon Loading inherited module 'com.google.gwt.app.App' Loading inherited module 'com.google.gwt.user.User' Loading inherited module 'com.google.gwt.core.Core' Loading inherited module 'com.google.gwt.core.XSLinker' [ERROR] Line 22: Unexpected element 'when-linker-added' [ERROR] Failure while parsing XMLNetbeansの場合、使用しているライブラリーで古いバージョンのが混在することがあります。よくこのことをすっかり忘れていて、意味不明のエラーだと思って迷わないようにしましょう。
2011-05-19
[C#] XMLプログラミング ~XMLファイルの作成~
とりあえず、一番シンプルで直感的なDOMツリーによる作成方法を以下に示します。
XmlElement とXmlNode の使い分けがわかりにくいかもしれませんが、属性を持つようなノードについてはXmlElement を使ってください。またノードの値については、XmlElement に直接設定することはできません。上記のように、XmlNode に値をいれて子要素としてください。「値も1つのテキストノードである」と考えると理解しやすいと思います。
XmlDocument xmlDocument = new XmlDocument(); XmlElement root = xmlDocument.CreateElement("root"); xmlDocument.AppendChild(root); //1つめのitemエレメント XmlElement item_elem = xmlDocument.CreateElement("item"); item_elem.SetAttribute("id", "1"); //item_elem.Value = "直接値を入れてみる"; //これはできません root.AppendChild(item_elem); XmlElement item_elem2 = xmlDocument.CreateElement("item"); XmlNode name_node = xmlDocument.CreateNode(XmlNodeType.Text, "", ""); name_node.Value = "値を入れる"; item_elem2.AppendChild(name_node); root.AppendChild(item_elem2); xmlDocument.Save("c:\\temp\\test.xml");
XmlElement とXmlNode の使い分けがわかりにくいかもしれませんが、属性を持つようなノードについてはXmlElement を使ってください。またノードの値については、XmlElement に直接設定することはできません。上記のように、XmlNode に値をいれて子要素としてください。「値も1つのテキストノードである」と考えると理解しやすいと思います。
2011-05-17
Picasaへ写真を投稿する
以前の、GooglePicasa APIを試してみたの続編で、JavaでPicasaに写真をアップロードするサンプルです。
PicasawebService myService = new PicasawebService("example"); myService.setUserCredentials("<ここにユーザID>", "<ここにパスワード>"); URL albumPostUrl = new URL("http://picasaweb.google.com/data/feed/api/user/<ここにユーザID>/albumid/<ここにアルバムID>"); PhotoEntry myPhoto = new PhotoEntry(); myPhoto.setTitle(new PlainTextConstruct("ファイル名")); myPhoto.setDescription(new PlainTextConstruct("タイトル")); myPhoto.setClient("クライアント名");//ちょっとここは不明 MediaFileSource myMedia = new MediaFileSource(new File("C:\\temp\\kiku.jpg"), "image/jpeg"); myPhoto.setMediaSource(myMedia); PhotoEntry returnedPhoto = myService.insert(albumPostUrl, myPhoto);最後のreturnedPhoto には、アップしたファイルのURLなどが格納されています。
2011-05-16
教育システム情報学会全国大会講演申し込み
8月31日より開催される教育システム情報学会全国大会にて1件発表エントリーしました。本日が締切で慌ててしたわけですが、、、、
ネタは、Twitter系の研究で、現在、院生が開発に取り組んでいるシステムです。夏にはうまくいけば、その場で実演ができるかなぁと思っています。いろいろなシステムを連携させるので、設計をシンプルに考えていかないとドツボにはまりそうです。まずは、来月の原稿締切に間に合わせないと、、、
ネタは、Twitter系の研究で、現在、院生が開発に取り組んでいるシステムです。夏にはうまくいけば、その場で実演ができるかなぁと思っています。いろいろなシステムを連携させるので、設計をシンプルに考えていかないとドツボにはまりそうです。まずは、来月の原稿締切に間に合わせないと、、、
登録:
投稿 (Atom)