質問者
Windows 10 IoT Core C# 音楽(.mp3 など)再生する命令ありますか?

全般的な情報交換
-
すいませんカテゴリが見当たらず、サイト自体が別なのかもしれませんが、こちらに記述させていただきます。
タイトルの件について自分なりに、検索などもして見ましたが、
C#では、見つけることができませんでした。
やむを得ず、Rasberry Pi 2B のGPIO の制御で、
SDHC 内の音楽を再生するモジュールを制御して、再生するしかないかなと考えていますが、
C#、などでRassbery Pi 2B 内のSDHCや、USBメモリの音楽ファイルを、
再生する命令や方法をご存知の方がおられましたら、情報を公開していただけますと助かります。
以上です。
- 種類を変更済み 星 睦美 2016年8月30日 6:15 関連した情報を共有しやすい
すべての返信
-
この件を最初に質問させていただいたもの(ニックネーム はせくん)です。
-----------------------------------------------------------------------
★お願いです。ご存知の方ご指摘ください。
OS:Windows 10 IoT 、Visual Studio 2015 C#、
Rasberry Pi 2B Remote Machine 動作 での検証では、
WindowsMediaPlayer の コードは、Buid では成功しても
Remote Machine 動作 では、動作する or 動作しない仕様?
-----------------------------------------------------------------------
自分で、調査検討の結果、Visual Studio 2015 C#にて参照設定不足により、
プログラムの部品が不足しているようでした。
以下のURLが検索の結果見つかり、命令を記述することができました。今現在、コンパイルして
Raspberry Pi 2B,3Bに
入れて, .mp3 や、ハイレゾ FLACなどの再生動作確認
(とりあえずPWM出力からアクティブスピーカーへ)
までは、実行していません。実験結果後ほどまた公開させていただきます。(次に続く)
Visual Studio 2015では、Solusion Explorer の References にて
Add Reference にて、Universal Windows(多分これがWindows 10 IoT用のプログラムの部品)
に、wmp.dll を Windows のしたの System32 の中に Browsesして探しに行きます。
自分は最初から、画面の表に出ていました。これのチェックボックスをONにして、OKします。
C#では、以下の様な形で、名前空間(namespace)の有効範囲に
注意しながら、適切な場所に記述していけば音楽再生制御可能だと思い記述中です。
→現在、Rasberyy Pi 2B にネット越しのWindows PC(Windows 10)から
実行しようとしますが、ビルドだけは通過しますが、実機上で動かそいうとすると
①のところで、エラーとなり止まります。
Windows 10 IoT Coreでは、使えない部品なのか調査中です。(次に続く)
-----
using WMPLib;//音楽再生に必要な部品(参照宣言)
-----
//音楽再生の部品のインスタンス(設計図に基づく実態のプログラム部品を1つ)の生成 ・・・①
WindowsMediaPlayer mediaPlayer = new WindowsMediaPlayer();-----
//再生するファイル名
public string fileNameChime = "C:\\Chime.mid";//Chimeのファイル名とパス
public string fileNameRadio = "C:\\Radio.mid";//Radioのファイル名とパス-----
switch (StrDateTime)
{
case "08:35":
Speaker(fileNameRadio);//Radio再生
break;
case "08:30":
timer2.Stop();//再生している間は、時間の確認しない。
Speaker(fileNameChime);//Chime再生
break;}
-----
//Speakerからの再生のための関数(何回も使うため)
public void Speaker(string FileName)
{
//オーディオファイルを指定する(自動的に再生される)
mediaPlayer.URL = FileName;
//再生する
mediaPlayer.controls.play();
//timer3.Start();//timer3 のIntervalで
}-----
★(参考URL)参照設定参考
http://www.atmarkit.co.jp/ait/articles/1511/18/news043.html
★(参考URL)C#,VBサンプルコード
http://dobon.net/vb/dotnet/programing/playmidifile.html
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q10138481175
★(参考URL)Raspberry Pi 2B,3B Windows 10 IoT Core C# サンプルコードと、ピンアサイン
http://www.atmarkit.co.jp/ait/articles/1511/18/news043.html以上です。
- 編集済み pokepa1001 2016年8月19日 8:17 点線部変更
-
お忙しいところ、情報いただきありがとうございます。(ニックネーム はせくんです。)
GPIO制御で、SD内のMP3ファイル再生するモジュールも明日、着しますが、
ソフトで再生出来たほうがいいので、本日はいただいたURLを手掛かりに、
関連情報勉強させていただき、明日実験させていただきます。
背景情報として、ラズビアンOSでは、無料の音楽再生ソフトで、ハイレゾウォークマンで聞いていた
”いきものがかりさん”の楽曲のFLACファイルも再生(PWM出力でフィルタ経由の3.5mmオーディオジャック)を
別に所有の Rassbery Pi 3Bでできたので、近い能力の Rassbery Pi 2Bでも、Windows 10 IoT Core
上でもファイルの対応しているプログラム部品があれば、 .mp3 FLACなども 音楽再生可能だと考えています。
⇒結果は、日本+世界の IoT 作家の方が、活発化して、省エネルギー省力化が進むように公開させていただきます。
⇒2016.08.20 11:00現在、BackgroundMediaPlayer 命令についてうまく自分が記述できていません。
WindowsMediaPlayer mediaPlayer = new WindowsMediaPlayer();
のような形で記述してみましたが、赤色の波線が出てしまう状況です。
ーーーーーーーーーーーー
★質問★
具体的なC#でのRaspberryシリーズでの動作実績のある
音声・音楽のソフトによる再生命令コード公開していただける方、おられますでしょうか?
ーーーーーーーーーーーー
⇒2016.0820 13:20現在、https://ja.wikipedia.org/wiki/Microsoft_Windows_10_IoT からも
ひょっとすると最小限の機能から、ラズビアンOSでは、上記のようにハイレゾウォークマンで使うようなファイルも
再生できましたが、Windows 10 IoT Core は組み込みに特化していて、
現在のところ音声、音楽再生などの機能は、割愛しているのかなと思うようになってきました。
https://github.com/ms-iot/samples ←サンプルコードに音楽差生成などなさそうに見えるか
まだ、自分の調べが不足しているかだと思われます。
それより先に、時間をLANコネクタ経由で、常に何らかの正確なものと同期させておかないと行けないため
そちらを先に調べます。LAN経由もしくは、電波時計電子回路モジュールにて時刻同期のどちらかです。
http://www.aitendo.com/product/9148
Dashboard→自分のデバイス→右ボタン→Pwershell
set-date “2016/8/18 14:17:00” などで強制的に時刻設定し、
↓URLで、自動同期すると、16時間マイナスに同期しているようになりました。
場所が違うのかも、Raspberry内のconfig的なところか、同期先か???
http://qiita.com/locatw/items/1b8150a8209c3e8afc9b
→①2016.08.22現在 時間は16時間遅れの時間で同期。(標準時間の場所の設計のconfig的な設定が違うのかも)
②音楽再生は、COMExpretionはユーザーコードによってハンドルされませんでした。 というタイトルのエラーメッセージ
のボックスス表示で、以下のコードが指摘を受けたままです。意味わからず、
WindowsMediaPlayer mediaPlayer = new WindowsMediaPlayer();/
→①時間ずれて同期ならそれはそれで、ずれた時間にフィットするようにタイムスケジュールである動作するように
プログラミング
⇒②音楽再生は、別の電子回路モジュールで、SD内の音楽などを再生、これらは、Raspberry のGPIO
で、制御。
とりあえず原理試作的に、機能として、動かすために、回避的ですが、
①②の臨時的な策で動かそうと考えています。
どなたか、①②方法ご存知のかたおられましたら、女王いただけますと助かります。
⇒2016.08.23現在、MediaPlayerの命令を使わなければ、ARM リモートコンピュータでプログラム実行できました。
初期値、使うGPIOの端子だけ、Highにして、電圧測定の実測値は、
High端子電圧確認、3.276,3.274,3.273,3.273,3.274[V]でした。
この端子電圧で、MOS FETなどのGを動作させる場合は、ゲートしきい値電圧 最小~最大 の部分の
データシート見て、
最大値さえも、上記の電圧以下である型番を選定しないと、半導体バラつきの中で量産するとHighに
反応しないものも出てきますので注意が必要です。
というわけで、ラズビアンOSでは再生する無料ソフトで、再生できる能力あるSoC実装されていますが、
命令の記述がまずいのか、わかっていませんが、再生できなかったため、SD内のMP3を再生する電子回路
モジュールをGPIO制御で、間接的に再生するという回避策で、動作する機能は満たそうとしています。
⇒2016.08.24現在、回避策は動作しそうです。
上記のソフトで音声再生は、以下のサンプルURLに参考にできそうなのがあるかもしれないので、
そちらを、実験させていただく予定です。他の作家さんも、
まずはこちらで目的に近いものがないか探すのが近道かも知れません。
https://developer.microsoft.com/ja-jp/windows/samples
上記で、アドバイスいただいたサンプルコードをVisualStudio で見てみようとしましたが、
Windows 10 のVersionが10586 で、最新は、14393のようです。
Visual Studio のほうから、サンプルコードを見ようとしたら、
これでないと、表示できないという趣旨のメッセージが表示されました。
もしかしたら、現在、リモートなので、最新の Windows 10を開発PCにインストールしないと、
Raspberryの中では、最新のWindows 10 IoTでも、音楽再生的な命令はリモートでの
デバッグができないため、これまではできなかったのかもしれないという仮説のもと、
Cドライブの隙間を開けて、最新Windows 10 をインストールする準備中です。
⇒2016.08.25現在、開発側のWindows PC を最新のWindows 10 にしても
WindowsMediaPlayer mediaPlayer = new WindowsMediaPlayer();
COMexception はユーザーによってハンドルされませんでした。
のエラーメッセージボックスが表示されます。だから、どう記述すればいいのかという、意味が自分は理解できていません。
XD内の、MP3を再生する電子回路モジュールが着するまでにこの件解決しなければ、
そちらをGPIO制御して、機能的には満たす予定です。GPIOは、上記のように電圧測定で
動作していることは確認済みのため、FETを適したもの選んで、電源用意すればOKです。
以下に、ソフトの力で、音楽再生する説明だと思われますが、ありましたが、自分は、エラーとなる行がありうまく行っていません。(違ったらすいません。)
http://stackoverflow.com/questions/33942042/play-wav-file-in-raspberry-pi-with-windows-10-iot-core
http://stackoverflow.com/questions/23904356/play-sound-in-windows-phone-8-1-background
↓これも、参考になると思いますが、自分は、ダウンロードのZip 一部、警告が出て、
動作できていません。
http://www.dotnetcurry.com/windowsapp/1240/homepi-windows-10-iot-app-raspberrypi-2
⇒2016.08.26 上記で記述したマイクロソフトさんのホームページ上の
それぞれどのような、UWPのサンプルなのか日本語で、一行で、説明されるものと思われます。
http://d.hatena.ne.jp/the48/20150829/1440802744
自分も、
- AudioCreation
C# 音楽ファイル再生、キャプチャ、生成信号、ミックス、エフェクトなど
のサンプルプロジェクトの動作をこれから確認させていただきます。
UWPだからといって、Raspberry Pi 2Bでも、リモートコンピュータで
かならず、動作する仕様なのか知識不足ですが。
1既に投票済み
以上です。[V]
- 編集済み pokepa1001 2016年8月26日 5:31 現状追記
-
お忙しいところ、情報いただきありがとうございます。(ニックネーム はせくんです。)
MP3を再生するモジュールをGPIOで制御するやり方では、目的(原理試作) を達成しました、
https://www.facebook.com/hiroyukie.hasegawa/videos/968162736662340/
しかし、UWPのサンプルコードは動かせていません。自分が知識不足なのだと思いますが、UWPサンプルがすべて、Windwos 10 IoT Core上で動くとは限らないのではないかという気持ちになってきました。名前空間を認識してくれないということが感じたからです。
Windows 10 IoT Core の UWP ということでないと命令がそろっていないのかも
以下のサンプルでは、MP3などのファイル再生のサンプルに感じます。
https://developer.microsoft.com/en-us/windows/iot/samples
自分が知らないだけか、これから、徐々に命令がそろってくるのかどちらかだと思います。
もしどなたか、ご存知の方がおられましたら、情報を公開していただけないでしょうか?
ターゲットは、Rasberry Pi 2B or 3B です。
- 編集済み pokepa1001 2016年9月12日 23:45 修正
-
-
(ニックネーム はせくんです。) 上記の質問、自分で調べて、Rassberry 電源OFF ONで、自作アプリが最初に立ち上がり、組み込み専用電子回路モジュールとして動作しましたので、自分以外の作家さんも、たくさんアイデアを具現化できるように、公開させていただきます。
【IoT】Windows 10 IoT Core 実行ファイル置き場、調査
参考URL(SPECIAL Thanks)
http://blog.qaramell.com/papemk2/16420
http://www.northfox.org/?p=159
Windows 10 IoT Core Dashboardのアプリを、開発用Windows 10 PCで立ち上げる。
Windows PowerShell というMS DOSプロンプトや、NEWS(Sony)などであったUNIXの > で命令してね!
という雰囲気の画面が立ち上がります。
しかし、この画面関係なく、メッセージボックス的表示で、
パスワードを聞いてきます。
デフォルトパスワード入力、p@ssw0rd
IoTStartup list
すると、Windows10 IoT Core( (Rasberry Pi 2B/3B μSDにインストール済みOS)にインストールされているアプリが一覧表示されます。
この中に一番初めに確認したパッケージファミリ名があるはずです。(アプリが配置されている場合)一覧にパッケージファミリ名が見つかったら
C#などのVisual Studio 2015 * などの、上の方の
表示⇒ソリューションエクスプローラーにて、ファイルの一覧というか組
織図というかそういう表示が、右に現れます。
Package.appxmanifest⇒Packagingタブ⇒Package family name
をコピーしてくる。(ものすごい、手入力では、絶対間違えるような文字列です。)
以下の例のような文法で、スタートアップに
置いて欲しいとお願いをする。
例 ↓パッケージファミリ名
[192.168.0.243]: PS C:\> iotstartup add headed HelloWorld
その後、なんかいろいろ英文で、表示出ます。
この時に、Errorという文字がどこかにあれば、何か単純なスペルミスや持ってくる
パッケージファミリー名が違うものをそうだと勘違いしている場合がありますので、
初心に戻り基本から再確認をお願い致します。
IoTStartup startup
により、スタートアップにパッケージファミリー名が登録できたのか
確認します。
登録できていれば、Raspberry Pi 2B/3Bの電源をOFFして、
電源ONしても、自作のアプリが最初に立ち上がり、組み込みソフト電子回路の
プラットフォームとして、使えますので、
これらで十分だと思われる製品や、ロボットコンテストなどでは、スピーディーにつくりたいものの、原理試作または、最終製品を作成し得るきっかけに
なると信じています。
若干関連しますが、以下の様なものも、Raspberryの電子回路と回りつつけるものを小さくして実装すれば、作れるのかもしれません。本物は大量生産で安くできるように、もっと専用にワンチップ化されたプラットフォーム(ICなど)販売されていて、それらで作っているのかもしれません。
○コラム(ちょっと一息)
背景:
昨日、西野カナさんのライブ(サンドーム福井)行きましたが、(昔のライブで言うペンライト)ソフトクリーム形
ライト端末(お客さん個人購入)が100msec以下の頻度で3原色LEDを会場一斉に何らかの電波通信制御(端末側は受け身だけと思われます)で、自動で切り替えてある種類程度のフルカラー制御して、同時に端末バラバラにカラー出せる仕組みが知りたく、購入し中分解して観察予定です。(通信方式、主要マイコン、LEDの品番、消費電力、製造メーカ、その他)
⇒数年前に、ホームページなど見ていたの忘れてました。
NHK紅白歌合戦でも数年前から使用している東京オリンピックでも使われる可能性の高いFreFlow(フリフラ)(Sonyグループ サブブランドの商標)でした。
USJや、ディズニーランドでも使えそう、または。すでに使っているのかも?
知ってたのに、実際身近なライブで見ると驚き綺麗でした。西野カナさん名義のものは、かなり小型化されていました。帰りの駅までと駅からの歩きも、手動で点灯と数種のカラー変更できるので、交通安全アイテムとしても使えました。高校生など夜間自転車や、歩きで道路交通法でOKそうな青を前後ろを赤などに点灯で、フリフラ使えるライブで、カナさん以外でも通信プロトコル同じだと推測され、持っていけばいいのかも。ライブごとに、ライブの名義のアイテムでないと使えないなどの制約があるかもしれませんが。中改造して、電池増やしたり抵抗やLEDの変更して輝度アップなどもしてみたいです。こんなことから、分解して観察したいという好奇心が残り。自分の1個を今晩分解します。分解してもワイヤボンディングで封止樹脂溶かされてわからないかもしれませんが。通信は、ZigBeehttp://www.musenka.com/info/bluetooth_zigbee_diff.htmlあたりなのだろうか?開発された方とお話したいくらい興味湧いています。
開発記事より、極力専用ワンチップ化されていそう、FeliCaのICのように広がりを感じます。
アップルさんがまた目をつけ、電話端末などに搭載したりして。
http://www.musicman-net.com/report/82-2.html
http://www.smci.jp/mob/pageShw.php?site=smci&ima=4331&cd=solution
⇒後まだ疑問が残っています。Windows 10 IoT Core の目入れだけで、.mp3や、ハイレゾウォークマンのFLAC再生できないか?
Visual Studio 上で、うまく自分いけてません。わかる方情報をお願い致します。
Windows 10 IoT の OSには、3種類あります。他の種類ならできるのかも?
Windows 10 IoT Core は、μSDカードのほんの小さな領域だけで、達成しているように、μSDカードの内見て感じました。そういうことンセプトのOSなら、今のところは、その機能は搭載できていないか、搭載しないコンセプトか、自分がまだ使い方理解できていないかだと推測しています。
- 編集済み pokepa1001 2016年9月12日 23:57 追記