コード例 #1
0
ファイル: MediaPlayerView.cs プロジェクト: suterma/Replayer
        /// <summary>
        ///     Initializes a new instance of the <see cref="MediaPlayerView" /> class.
        /// </summary>
        public MediaPlayerView()
        {
            InitializeComponent();

            //add media player
            _mediaPlayer = new AudioPlaybackPanel {
                Dock = DockStyle.Fill
            };
            Controls.Add(_mediaPlayer);

            Presenter = new MediaPlayerPresenter(this);
        }
コード例 #2
0
        public TabPage Create(VrfGuiContext vrfGuiContext, byte[] input)
        {
            WaveStream waveStream;

            if (input == null)
            {
                waveStream = new AudioFileReader(vrfGuiContext.FileName);
            }
            else if (vrfGuiContext.FileName.EndsWith(".mp3", StringComparison.InvariantCultureIgnoreCase))
            {
                waveStream = new Mp3FileReaderBase(new MemoryStream(input), wf => new Mp3FrameDecompressor(wf));
            }
            else
            {
                waveStream = new WaveFileReader(new MemoryStream(input));
            }

            var tab   = new TabPage();
            var audio = new AudioPlaybackPanel(waveStream);

            tab.Controls.Add(audio);
            return(tab);
        }
コード例 #3
0
        public AudioPlayer(Resource resource, TabPage tab)
        {
            var soundData = (Sound)resource.DataBlock;
            var stream    = soundData.GetSoundStream();

            try
            {
                WaveStream waveStream;

                switch (soundData.SoundType)
                {
                case Sound.AudioFileType.WAV: waveStream = new WaveFileReader(stream); break;

                case Sound.AudioFileType.MP3: waveStream = new Mp3FileReaderBase(stream, wf => new Mp3FrameDecompressor(wf)); break;

                case Sound.AudioFileType.AAC: waveStream = new StreamMediaFoundationReader(stream); break;

                default: throw new Exception($"Dont know how to play {soundData.SoundType}");
                }

                var audio = new AudioPlaybackPanel(waveStream);

                tab.Controls.Add(audio);
            }
            catch (Exception e)
            {
                Console.Error.WriteLine(e);

                var msg = new Label
                {
                    Text = $"NAudio Exception: {e.Message}",
                    Dock = DockStyle.Fill,
                };

                tab.Controls.Add(msg);
            }
        }