2011-12-02
珍しくすまべんに参加するので書こう
勉強会 |
![]()
というわけで久しぶりに参加します。
スマートフォン勉強会 - スマートフォン勉強会@関東 #16
2011-11-11
SIP起動中にボタンを押したときの処理
WP7 |
![]()
微妙に更新間隔あいてしまった。最近はあまりコード書かない仕事しているせいで技術ネタのストックがたまらないですね。。。
まあコード書かない仕事にも少しなれてきたので、最近は家で少しずつコード書いてます。早く公開できるようにがんばりたい。
というわけでちょっと入力フォーム作ってたときに困ったんですが、
SIPが表示されるじゃないですか、ほんで入力中にアプリケーションバーの決定ボタンとか押して処理を確定させようとするときに、
何も考えずにやると入力中の文字が確定される前に処理が走っちゃうんですよね。
this.Focus()とか書いておくといいらしいです。解決した!
2011-10-05
2011-09-15
ラジオを見に行ってきた。
WP7 |
![]()
先週のことなのですが、ななふぉの人に突然さそわれて見学に行ってきました。
オールナイトニッポンの、app10という番組なのですがなんとスマートフォンをテーマにしたラジオ番組なのですよ。
ustとかニコ生もやっててすごい!最近では当たり前なのかしら。。。
僕も当日まで知らなくてすごくびっくりしました。。。
やあ、スマートフォンの勢いすごいですね。
Twitterのハッシュタグを使って交流を促したりと面白いなーと思いました。
僕も現場で見ながらポストしてたら公式に補足されたりと楽しめました。
その日はWindowsPhone特集としてMS,KDDI,富士通東芝と3社そろって出演と言う
30分の枠じゃ絶対たりないだろうっていうゲストがきてて、
案の定倍でも足りないんじゃないかっていう感じだったのですが(別の機会でもいいからしゃべってほしいなあ)、
ラジオ局に入ることとか普段ないので、とても楽しかったです。
当日のust見つけた!これこれ!
Ustream.tv: ユーザー jolf_radio: 20110909app10, 20110909app10. ラジオ
撮った写真の一部。
ホワイトボードでどういう人が座ってるとか教えてもらった!やさしい!!
2011-08-31
カメラを使う。
WP7 |
![]()
基本的なメソッドだけ。
とりあえずxaml、このrectangleのなかにプレビューが表示される感じ。
<Rectangle Width="300" Height="200"
HorizontalAlignment="Left"
x:Name="viewfinderContainer">
<Rectangle.Fill>
<VideoBrush x:Name="viewfinderBrush" />
</Rectangle.Fill>
</Rectangle>
初期化と実行開始。
PhotoCamera cam = new Microsoft.Devices.PhotoCamera(); cam.Initialized += (p1,p2) => { //初期化終了時イベント。これが実行されたあとでないと、Flashなどの設定はできない。 //flashの設定 cam.FlashMode = FlashMode.Off; //Offは大丈夫だが他のモードを使う場合はデバイスが対応するか確認するコードをいれること。 if(cam.IsFlashModeSupported(FlashMode.Auto)){ cam.FlashMode = FlashMode.Auto; } //画像解像度設定 cam.Resolution = cam.AvailableResolutions.OrderByDescending(x => x.Height).FirstOrDefault();//一番でかいの } viewfinderBrush.SetSource(cam);//リアルタイムレンダリングされる。らくちん。
写真を撮る。CaptureImageメソッドをたたくだけ。
//これだけ。 cam.CaptureImageAvailable += (p1,p2)=>{ //保存処理。 //p2.ImageStreamをお好きなように }; cam.CaptureImage(); //オートフォーカスが必要ならこう。 cam.AutoFocusCompleted += (p1,p2)=>{ cam.CaptureImage(); }; cam.Focuse(); //上記方法ではIS12Tでシャッタ音がなる。 //消す方法は未調査 //鳴らさない方法としてはコントロールのキャプチャを使う方法がある。 var wb = new WriteableBitmap(viewfinderContainer, null); //あとはWritaebleBItmapをお好きなように
画像の保存
//イメージストリームを保存 Microsoft.Xna.Framework.Media.MediaLibrary library = new MediaLibrary(); library.SavePictureToCameraRoll(fileName, e.ImageStream);//通常はCaptureImageイベントのArgs //writeableBitmapを保存 //一度IsolatedStorageに保存する String tempJPEG = "TempJPEG"; var myStore = IsolatedStorageFile.GetUserStoreForApplication(); if (myStore.FileExists(tempJPEG)) { myStore.DeleteFile(tempJPEG); } IsolatedStorageFileStream myFileStream = myStore.CreateFile(tempJPEG); Extensions.SaveJpeg(wb, myFileStream, wb.PixelWidth, wb.PixelHeight, 0, 85); myFileStream.Close(); // 分離ストレージからPicturesHubにコピーする。 MediaLibrary library = new MediaLibrary(); myFileStream = myStore.OpenFile(tempJPEG, FileMode.Open, FileAccess.Read); library.SavePicture(fileName, myFileStream); myFileStream.Close();
おまけ。シャッターボタン関連のイベントはこの辺なので、標準と同じような動きするならあわせたほうがよさそうですね。
CameraButtons.ShutterKeyHalfPressed += OnButtonHalfPress;//普通ならAF開始 CameraButtons.ShutterKeyPressed += OnButtonFullPress;//普通ならシャッター CameraButtons.ShutterKeyReleased += OnButtonRelease;//普通ならAF中止




