locked
マウスオーバー時のボタンサウンドが途切れる RRS feed

  • 質問

  • 質問いたします。
    マウスオーバーのイベントにきちんと反応するサウンドの設定がわかりません。
    ボタンを作り、そこのマウスオーバー時のサウンドを埋め込むと、
    正常に鳴るのは始めの1回のみで、2回目以降は音の途中から再生されます。

    そこで、TimeSpanで先頭に指定しても、MouseLeaveでStop();させても症状が改善しません。

    ------------------------------
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Net;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Documents;
    using System.Windows.Input;
    using System.Windows.Media;
    using System.Windows.Media.Animation;
    using System.Windows.Shapes;


    namespace soundTest
    {
        public partial class Page : UserControl
        {
            MediaElement Btn;

            public Page()
            {
                InitializeComponent();
                LayoutRoot.Loaded += new RoutedEventHandler(LayoutRoot_Loaded);
            }

            void LayoutRoot_Loaded(object sender, RoutedEventArgs e)
            {
                Btn.MouseEnter += new MouseEventHandler(Btn_MouseEnter);

       btnSound = new MediaElement();
                btnSound.AutoPlay = false;
                btnSound.Source = new Uri("http://localhost:49201/mouseOverSound.wma", UriKind.Absolute);
                LayoutRoot.Children.Add(btnSound);

            }

            void Btn_MouseEnter(object sender, MouseEventArgs e)
            {
               btnSound.Stop();
               btnSound.Play();
            }

        }
    }

    ------------------------------

    どなたか、ご教授くださいませ。
    • 移動 Wang Huang 2012年10月1日 9:42 (移動元:Silverlight - ビデオとメディア)
    2009年6月14日 11:29

すべての返信

  • サウンドの長さやMouseEnterがかなり短い間隔で発生する場合も考えると、ファイルをリソースとして埋め込んで置き、HTTPではなくアセンブリから取り出す方がいいかもしれません。
    Expression Blend 3からPlaySoundActionというBehaviorが導入されましたので、音声ファイルの再生はもう少し簡単にできるようになります。
    この投稿は現状のまま何の保証もなく掲載しているものであり、何らかの権利を許諾するものでもありません。コミュニティにおけるマイクロソフト社員による発言やコメントは、マイクロソフトの正式な見解またはコメントではありません。詳しくは http://www.microsoft.com/japan/communities/msp.mspx をご覧ください。
    2009年9月15日 10:44