「Xamarin.Mac/効果音を再生する」を編集中

ナビゲーションに移動 検索に移動

警告: ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。ログインまたはアカウントを作成すれば、あなたの編集はその利用者名とともに表示されるほか、その他の利点もあります。

この編集を取り消せます。 下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。

最新版 編集中の文章
2行目: 2行目:
 
[[Xamarin.Mac]]で効果音を再生したい。
 
[[Xamarin.Mac]]で効果音を再生したい。
  
 +
==実装==
 
==NSSoundを使う==
 
==NSSoundを使う==
 
NSSoundを使うと簡単に効果音を再生できる。
 
NSSoundを使うと簡単に効果音を再生できる。
 
<source lang="csharp">
 
<source lang="csharp">
 
             var path = Path.Combine(NSBundle.MainBundle.BundlePath, "Contents", "Resources");
 
             var path = Path.Combine(NSBundle.MainBundle.BundlePath, "Contents", "Resources");
             var file = Path.Combine(path,"se001.mp3");
+
             var file = Path.Combine(path,"se-033a.mp3");
  
 
             var sound = new NSSound(file, byRef:false);
 
             var sound = new NSSound(file, byRef:false);
28行目: 29行目:
 
<source lang="csharp">
 
<source lang="csharp">
 
             var path = Path.Combine(NSBundle.MainBundle.BundlePath, "Contents", "Resources");
 
             var path = Path.Combine(NSBundle.MainBundle.BundlePath, "Contents", "Resources");
             var file = Path.Combine(path,"se001.mp3");
+
             var file = Path.Combine(path,"se-033a.mp3");
 
             var url = new NSUrl(file, isDir: false);
 
             var url = new NSUrl(file, isDir: false);
  
49行目: 50行目:
 
===欠点===
 
===欠点===
 
AVFoundationということで同APIのサポートが(実用レベルで)追加された[[Xamarin.Mac]]の2015年中頃のバージョン以降に限定される。古い[[Xamarin.Mac]]を購入しバージョンアップしていない人や[[MonoMac]]の人は残念賞なようだ。なお、[[Xamarin.iOS]]もこの方法を利用できる。
 
AVFoundationということで同APIのサポートが(実用レベルで)追加された[[Xamarin.Mac]]の2015年中頃のバージョン以降に限定される。古い[[Xamarin.Mac]]を購入しバージョンアップしていない人や[[MonoMac]]の人は残念賞なようだ。なお、[[Xamarin.iOS]]もこの方法を利用できる。
 
==共通==
 
再生開始までのタイムラグを無くすため、音声再生に関するクラスインスタンスの生成はウインドウ初期化時(AwakeFromNibメソッド)などで行い、[[フィールド変数]]として保持しておくことが望ましい。
 
<source lang="csharp">
 
        AVAudioPlayer _player;
 
 
        public override void AwakeFromNib()
 
        {
 
            base.AwakeFromNib();
 
 
            var path = Path.Combine(NSBundle.MainBundle.BundlePath, "Contents", "Resources");
 
            var file = Path.Combine(path,"se-033a.mp3");
 
            var url = new NSUrl(file, isDir: false);
 
 
            _player = AVAudioPlayer.FromUrl(url);
 
            _player.PrepareToPlay();
 
        }
 
 
 
        public override void MouseDown(NSEvent theEvent)
 
        {
 
            Task.Run(() => _player.Play());
 
        }
 
</source>
 
  
 
==連射音==
 
==連射音==

MonoBookへの投稿はすべて、他の投稿者によって編集、変更、除去される場合があります。 自分が書いたものが他の人に容赦なく編集されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細はMonoBook:著作権を参照)。 著作権保護されている作品は、許諾なしに投稿しないでください!

このページを編集するには、下記の確認用の質問に回答してください (詳細):

取り消し 編集の仕方 (新しいウィンドウで開きます)

このページで使用されているテンプレート:

このページは 1 個の隠しカテゴリに属しています: