Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.12.2009, 07:43   #1
Casper-SC
Форумчанин
 
Регистрация: 04.07.2007
Сообщений: 549
По умолчанию Класс MediPlayer, помогите дополнить

Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices; //Чтобы работал DllImport

namespace MediaPlayer
{
    public partial class AudioPlayer
    {
        
        private string _command;
        private bool isOpen;

        [DllImport("winmm.dll")]
        private static extern long mciSendString(string strCommand, StringBuilder strReturn, int iReturnLength, IntPtr hwndCallback);

        public void Close()
        {
            _command = "close MediaFile";
            mciSendString(_command, null, 0, IntPtr.Zero);
            isOpen = false;
        }

        public void Open(string sFileName)
        {
            _command = "open \"" + sFileName + "\" type mpegvideo alias MediaFile";
            mciSendString(_command, null, 0, IntPtr.Zero);
            isOpen = true;
        }

        public void Play(bool loop)
        {
            if (isOpen)
            {
                _command = "play MediaFile";
                if (loop)
                    _command += " REPEAT";
                mciSendString(_command, null, 0, IntPtr.Zero);
            }
        }

        public void Pause()
        {
            _command = "pause MediaFile";
            mciSendString(_command, null, 0, IntPtr.Zero);
        }

        //пока работает как пауза
        public void Stop()
        {
            _command = "stop MediaFile";
            mciSendString(_command, null, 0, IntPtr.Zero);
        }

        public string GetLength()
        {
            IntPtr ptr = IntPtr.Zero;
            StringBuilder buffer = new StringBuilder(256);
            _command = "status MediaFile length";
            mciSendString(_command, buffer, 256, IntPtr.Zero);
            return buffer.ToString();
        }
    }

}
Помогите с проблемой, нужно чтобы метод Stop, останавливал воспроизведение, а не ставил на паузу.

Где можно на русском почитать про mciSendString и/или winmm.dll функции?

Давайте в рамках этого класса напишем дополнения к нему, тоесть наполним функциями, чтобы у всех желающих был какой ни какой, но класс с возможностью воспроизведения и mp3 и прочего. Например нужна возможность перемотки, желательно с указанием шага в параметрах метода.


\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ \\\\\\\\\\\\\\\\\\\\

Вот позже нашёл, вполне неплохой класс: http://www.codeproject.com/KB/audio-...P3Example.aspx

Последний раз редактировалось Casper-SC; 30.12.2009 в 16:58.
Casper-SC вне форума Ответить с цитированием
Старый 02.01.2010, 23:51   #2
dampirik
Форумчанин
 
Регистрация: 02.07.2009
Сообщений: 722
По умолчанию

Сейчас начинаю изучать диретикс, мельком глянул книгу, там какраз пример плеера и реализуется средствами деритикса...
Может стоит попробываеть его?
dampirik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите дополнить задачу Driver_09 Помощь студентам 4 23.12.2009 18:33
Дополнить слова пробелами на языке Си hellslash Помощь студентам 1 20.12.2009 12:10
макросом дополнить название Romuald Microsoft Office Excel 2 22.05.2008 17:31
Надо дополнить плз... Droid Общие вопросы Delphi 12 24.04.2008 18:01