rksoftware

Visual Studio とか C# とかが好きです

秋葉原 C# もくもく会 #25 勉強会を開催しました。

■ C# もくもく会

C# もくもく会 #25 を開催しました。

C# もくもく会 は東京の秋葉原で毎週木曜日に開催している .NET 系の勉強会です。
もくもく自習を基本とし、分からないことを教えあったり情報共有したりしている会です。

前回少し C# 度の低い写真だったので、頑張って C# らしい写真を撮ってみました。
f:id:rksoftware:20180209022529j:plain

定期開催していますので、お時間のある時に遊びに来ていただければと思います。
ちょっと詰まった時、ネット上で聞くのははずかしいなぁ、という課題のできた時などにも思い出していただけると嬉しいです。

■ 次回予定

次回は 2018/02/15 に開催予定です。

C# に関心のある方、是非遊びに来てください。

秋葉原のテーマ自由もくもく会に参加してきました。

秋葉原のテーマ自由もくもく会に参加してきました。
f:id:rksoftware:20180205013320j:plain

テーマ自由ということで、いつも行く会とは違った光の当たる感じの会で新鮮でした。
素晴らしいです。

■ やったこと

会場は秋葉原。参加の前に秋葉原で買い物ができます。
ということで、参加前に買ったものでブログを一本。テーマ自由故ですね。

そのあとは、今週末のイベントのための見直しを。
前回からひと月以上たつのできちんと見直しておかないと不安ですからね。
それと、テキストも誤字や抜けの修正を少々。ひと月以上前に見つけていてすっかり忘れていました。
ちなみにこのイベントです。
まだお席に余裕があるので、ぜひ遊びに来てください。

■ もっと東でも

こういった IT 勉強会は東京の中でも西(渋谷とか)での開催が多い気がします。
もっと東(秋葉原とか)でも流行ってくれることを願っています。
ぜひ皆さまよろしくお願いします。

話題のスマフォを買いました

■ 話題のスマフォ

最近次の記事が話題ですね。
http://trinity.jp/blog/2018/02/nuans_neo_windows_10_mobile.html
その話題のスマフォですが、非常に購入し安くなっていることでも話題です。

■ とういことで

買ってみました。
ちなみに NuAns NEO はこれで 2 台目になります。
1 台目は現役で使っていて、今もポケットに入っています。

■ 写真

・箱
かっこいい箱に収まっています。
f:id:rksoftware:20180204140621j:plain

・開封
内装もかっこいいですね。
f:id:rksoftware:20180204140642j:plain

・CORE のみ
[Reloaded] と違い仮のカバーなどもついていません。
まあ、どのご家庭にもカバーなら 4 セットくらいはあるでしょうから、これで十分です。
f:id:rksoftware:20180204140700j:plain

■ 電源投入

開封直後はバッテリーの充電が無いようで現在充電中です。
使えるのはもう少し時間がかかりそうです。

■ 蓋が固い

皆さんご存知のように NuAns の蓋は閉める際にとても固いです。
そこで失敗しないように 「nuans neo 箱 閉まらない」 などで検索して、一番上に次の素晴らしいブログがヒットし、参考にさせていただきました。
ちなみに箱は特に苦も無く簡単にきれいに閉まりました。
今回助けられた、この素晴らしいブログですが
最新の投稿が 351 日前となっています。素晴らしい記事を書かれているので、次の投稿を楽しみに待ちたいと思います。

秋葉原 C# もくもく会 #24 勉強会を開催しました。

■ C# もくもく会

C# もくもく会 #24 を開催しました。

C# もくもく会 は東京の秋葉原で毎週木曜日に開催している .NET 系の勉強会です。
もくもく自習を基本とし、分からないことを教えあったり情報共有したりしている会です。

ヴィジュアルイメージも大事ということで、これから開催報告に写真を載せてみることにしました。

定期開催していますので、お時間のある時に遊びに来ていただければと思います。
ちょっと詰まった時、ネット上で聞くのははずかしいなぁ、という課題のできた時などにも思い出していただけると嬉しいです。

■ 次回予定

次回は 2018/02/08 に開催予定です。

C# に関心のある方、是非遊びに来てください。

埋め込みリソースの名前空間

アセンブリに埋め込みリソースとして組み込んだファイルは、GetManifestResourceStream メソッドで Stream として取得できます。
この時、ファイル名を文字列で指定するのですが、このファイル名はどのように決まっているのでしょう?

■ 結論

{デフォルトnamespace}.{プロジェクト内でのディレクトリ}.{ファイル名}

■ 確認コード

確認してみます。
ファイルの配置は次のように Resources フォルダを作成し、その中に voice.m4a ファイルを配置しています。

検証コードです。

namespace XFSimpleAudio
{
    public partial class MainPage : ContentPage
    {
        public MainPage()
        {
            InitializeComponent();

            using (var stream = typeof(App).Assembly.GetManifestResourceStream("XFSimpleAudio.Resources.voice.m4a"))
                System.Console.WriteLine($"XFSimpleAudio: stream is {stream}");
            using (var stream = typeof(App).Assembly.GetManifestResourceStream("XFSimpleAudio2.Resources.voice.m4a"))
                System.Console.WriteLine($"XFSimpleAudio2: stream is {stream}");

プロジェクト作成後、特に設定を変えていない場合の出力

設定を変更していないので、デフォルトnamespace は XFSimpleAudio です。

XFSimpleAudio: stream is System.Reflection.Assembly+UnmanagedMemoryStreamForModule
XFSimpleAudio2: stream is

先頭が XFSimpleAudio の場合は取得できています。XFSimpleAudio2 の場合は取得できていません。

デフォルトnamespace を変更した場合の出力

次のように、デフォルトnamespace を XFSimpleAudio2 に変更した場合、

XFSimpleAudio: stream is
XFSimpleAudio2: stream is System.Reflection.Assembly+UnmanagedMemoryStreamForModule

先頭が XFSimpleAudio2 の場合に値が取得されるようになりました。

Xamarin で音声ファイルを再生する

Xamarin で音声ファイルを再生するには Simple Audio Player プラグインが使えます。

■ コード

次のコードは、ボタンをクリックすると埋め込みリソースの音声を 3.5 秒間ループ再生します。

using System.Threading.Tasks;
using Xamarin.Forms;

namespace XFSimpleAudio
{
    public partial class MainPage : ContentPage
    {
        public MainPage()
        {
            InitializeComponent();

            // UI の構築(この部分は SimpleAudioPlayer の使い方とは関係ない)
            var button = new Button() { Text = "button" };
            this.Content = button;

            // ボタンクリック(この中が SimpleAudioPlayer の使い方)
            button.Clicked += (sendeer, e) =>
            {
                // リソースの音声を 3.5 秒間ループ再生
                Plugin.SimpleAudioPlayer.Abstractions.ISimpleAudioPlayer player = Plugin.SimpleAudioPlayer.CrossSimpleAudioPlayer.Current;
                using (var stream = typeof(App).Assembly.GetManifestResourceStream("XFSimpleAudio.Resources.voice.m4a"))
                    player.Load(stream);
                player.Loop = true;
                player.Play();
                Task.Delay(3_500).Wait();
                player.Stop();
            };
        }
    }
}

使い方は、上記 GitHub の readme に書かれているとおりですが、ループ再生ができそうだったのでループ再生してみました。
リソースの音声は、プロジェクト上に次のように取り込んでいます。

画像の voice.m4a が音声ファイルです。
音声ファイルは用意するのが面倒だったので、iPhone のボイスメモで記録した音声で試しています。

たったこれだけで音声が再生できました。素晴らしいですね。

Visual Studio の 15.5.6 がリリースされました

Visual Studio の 15.5.6 がリリースされました.。

最新のリリースは英語版を参照するのがおすすめです。

■ 更新内容

・Service Fabric Tooling for the 6.1 Service Fabric release.
の一文のリンクだけです。
リンクの先はこちら。
https://blogs.msdn.microsoft.com/azureservicefabric/2018/01/26/service-fabric-6-1-release/
Service Fabric の新版がリリースされたそうです。
その他にはバグフィックスの情報もないですが、とりあえずアップデートしておきましょう。

■ 更新方法

Visual Studio の更新はメニューの ツール > ツールと機能を取得 で開くインストーラーから行えます。