VK Api messages.get C#

Рейтинг: 0Ответов: 2Опубликовано: 29.12.2014

Здравствуйте! Прошу не то чтобы помощи, а больше совета. Делаю standalone приложение, использующее vk api. Так вот хочу, чтобы в моем приложении воспроизводился звук нового сообщения, когда пользователю оно пришло. Была мысль сделать таймер и в нем делать запрос messages.get, но если оставить воспроизведение звука в таймере, то звук будет повторяться, пока пользователь не прочтет все новые сообщения. Так вот как это лучше реализовать, чтобы звук был один раз, когда приходит сообщение?

Ответы

▲ 2Принят

Не знаю логики вашего кода, однако, думаю, можно сделать что-то наподобие:

// переменная, в которой нужно хранить статусы сообщений (был ли проигран звук или нет)
Dictionary<int, bool> messages = new Dictionary<int, bool>();

// этот код нужно вызывать при получении сообщения
messages[newMessageId] = false;

// этот код нужно вызывать в таймере
foreach(var message in messages)
{
    if(!message.value) 
    {   
        // ваша функция, вызывающая звуковой сигнал
        Ring(); 
        // устанавливаем флаг, означающий, 
        // что звуковой сигнал по сообщению уже был проигран
        message.Value = true; 
    }
}
▲ 1

Используйте push-уведомления. См. account.registerDevice()