xamarin
visual studio 2017
効果音を鳴らしたいだけなのですがてこずっております。
短い音であればMediaPlayerよりSoundPoolがよいことなど調べ、以下コード記載をしています。
Interface
public interface TestInterface { void Effectplay(); }
MainPage.xaml.cs
// DependencyServiceから、オブジェクトを取得する TestInterface testInterface = DependencyService.Get<TestInterface>(); // スキャンと書き込み完了の効果音 testInterface.Effectplay();
MainActivity.cs
void TestInterface.Effectplay() { // 音声データを読み込む SoundPool mSoundPool = new SoundPool(8, Stream.Music, 0); // リソースID) int mSoundId = mSoundPool.Load(Android.App.Application.Context, Resource.Drawable.sample.mp3, 1); // 再生 mSoundPool.Play(mSoundId, 1.0F, 1.0F, 0, 0, 1.0F); }
リソースの割り当てとして画像であれば、フォルダに置くだけ(AndroidResourceにビルドアクションをするなどありますが)にもかかわらず、こと音源となるmp3の場合はそれだけでは済まないのはなぜでしょうか。
リソースIDなどを設定しなければいけないと調べているとわかりましたが、かなり手間がかかっています。
参考:
https://teratail.com/questions/48937
http://ytabuchi.hatenablog.com/entry/2017/01/16/170000
https://dev.classmethod.jp/smartphone/android/android-tips-48-soundpool-mediaplayer/
https://teratail.com/questions/48937
そもそもResourcesフォルダにrawフォルダ作成してローカルでsample.mp3を入れましたが、反映されてソリューションエクスプローラーに出てこないのはなぜなのでしょうか。ビルド(ongen.mp3が定義されていないため失敗)や再起動をしても現れません。
なおかつResource.Drawableにsample.mp3の定義がありません。とコンパイルエラーが出ています。
参考サイトなどいろいろ見ているのですが、画面ボタンを押して実行ではなく、cs内でディペンデンシーのメソッド実行という形で実装を考えています。
どうしたらmp3がソリューションエクスプローラに現れ、定義でき、効果音が流れるでしょうか。
よろしくお願い致します。
あなたの回答
tips
プレビュー