示例#1
0
        public static AvalonSoundChannel ToSound(this string asset)
        {
            var a = new IHTMLAudio {
                src = asset, autobuffer = true
            };


            a.AttachToDocument();
            //a.style.display = IStyle.DisplayEnum.none;

            // we can now use HTML5 audio element
            var x = new AvalonSoundChannel
            {
                Start =
                    delegate
                {
                    a.play();
                },

                Stop =
                    delegate
                {
                    a.pause();
                }
            };

            a.onended +=
                delegate
            {
                x.RaisePlaybackComplete();
            };


            return(x);
        }
        public static AvalonSoundChannel ToSound(this string asset)
        {
            var    x = KnownEmbeddedResources.Default[asset].ToSoundAsset();
            double v = 1;
            var    y = default(SoundChannel);

            var c = new AvalonSoundChannel();

            c.SetVolume =
                value =>
            {
                v = value;

                if (y != null)
                {
                    var t = y.soundTransform;
                    t.volume         = v;
                    y.soundTransform = t;
                }
            };

            c.Start =
                delegate
            {
                if (y != null)
                {
                    y.stop();
                }

                y = x.play(0, 0, new SoundTransform(v));

                y.soundComplete +=
                    delegate
                {
                    c.RaisePlaybackComplete();
                };
            };

            c.Stop =
                delegate
            {
                if (y != null)
                {
                    y.stop();
                    y = null;
                }
            };



            return(c);
        }
        public static AvalonSoundChannel PlaySound(this string asset)
        {
            var x = KnownEmbeddedResources.Default[asset].ToSoundAsset().play();

            var c = new AvalonSoundChannel
            {
                Stop = x.stop,
            };

            c.SetVolume = value => x.soundTransform = new SoundTransform(value);


            x.soundComplete +=
                delegate
            {
                c.RaisePlaybackComplete();
            };

            return(c);
        }