Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 | 2 | 3 | 4 |

 

  Вопрос: Думы о поведении плейлиста. Добавлено: 12.09.09 21:52  

Автор вопроса:  Winand | Web-сайт: winandfx.narod.ru
Удаляю в плеере из плейлиста некие элементы, в том числе играемый в данный момент. По какому принципу в этом случае стоит выбирать следующий\предыдущий треки?

Ответить

  Ответы Всего ответов: 50  

Номер ответа: 1
Автор ответа:
 rw12lq



Вопросов: 2
Ответов: 80
 Профиль | | #1 Добавлено: 12.09.09 22:18
aimp, например при удалении играемого, доигрывает и запускает след. по списку... можешь, к примеру присвоить каждому проигрываму файлу типа "процента популярности" (кто-то какой-то трек чаще слушает, какой-то реже...) ну и вот выбирать далее самый популярный...
если правильно понял вопрос...

Ответить

Номер ответа: 2
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #2
Добавлено: 12.09.09 23:39
Нее, самый популярный не катит - это будет почти рандом-режим. Тем более рейтинги не вписываются в мою концепцию простого плеера
Ну вот например
1 A
2 B <- Текущий трек, УДОЛЯЕМ его
3 C
4 D

Теперь после доигрывания B при переходе к следущему треку (с трека 2 на трек 3) мы попадем на D, пропустив C
1 A
2 C
3 D

Вот и приходится думать над, казалось бы, несложной частью.

Ответить

Номер ответа: 3
Автор ответа:
 rw12lq



Вопросов: 2
Ответов: 80
 Профиль | | #3 Добавлено: 13.09.09 00:57
например, если в качестве плейлиста используешь ListBox....

  1.  
  2. Dim NextTrack As Integer ' здесь следующий трек для проигрывания
  3.  
  4. Private Sub Delete_Click()
  5. If List1.ListCount = 0 Then Exit Sub ' если пусто в листе
  6.  
  7.     NextTrack = List1.ListIndex ' текущий итем в списке...
  8.  
  9.     List1.RemoveItem List1.ListIndex 'удалить из списка
  10.     
  11.     If NextTrack = List1.ListCount Then ' если текущий итем последний
  12.         List1.ListIndex = NextTrack - 1 ' след. для проигр. будет предыдущий трек
  13.     Else
  14.         List1.ListIndex = NextTrack ' след. для проигр. будет следующий трек по списку
  15.     End If
  16. End Sub
  17.  
  18. Private Sub Form_Load() ' заполню лист для примера..
  19.     For i = 0 To 5
  20.         List1.AddItem i & ".mp3"
  21.     Next i
  22. End Sub
  23.  
  24. Private Sub Play_Click()
  25.     Play (List1.Text) 'тут твоя функция для проигрывания
  26. End Sub

Ответить

Номер ответа: 4
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #4
Добавлено: 13.09.09 02:22
пока сделал в цикле удаления выделенных треков так:
  1. If indPlaying >= item Then decr indPlaying

Если текущий трек >= удаляемый, то текущий трек уменьшаем на 1
Одно плохо: при этом в списке синим выделяется трек, который не проигрывается в данный момент

Ответить

Номер ответа: 5
Автор ответа:
 rw12lq



Вопросов: 2
Ответов: 80
 Профиль | | #5 Добавлено: 13.09.09 11:51
делай при удалении цвет этого трека в листе бледно серым, например (если он проигрывается в данный момент, если нет - просто удаляй) и пускай он выделен... а когда доиграет до конца сам из листа удаляется и переходит на след/предыдущ....

Ответить

Номер ответа: 6
Автор ответа:
 Smith



ICQ: adamis@list.ru 

Вопросов: 153
Ответов: 3632
 Профиль | | #6 Добавлено: 13.09.09 13:37
Decr ? :).
Ерунда это всё с доигрыванием, не заморачивайся, стоп, удаление, плей тогоже элемента списка.
Аудику давно забросил?

Ответить

Номер ответа: 7
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #7
Добавлено: 13.09.09 14:46
Smith, почему это забросил?=) Её как раз и пилю. Вот научился вчера формировать handshake http-запросы для last.fm, попытаюсь сделать его поддержку
Можно даже посмотреть на текущее состояние: http://narod.ru/disk/13085654000/prj_Audica_4_dev_4.zip.html
Кстати поддерживаются теги в юникоде. По ctrl+v можно добавлять url'ы инет-радио. Закрыть вкладку - лефтклик, открыть новую - райтклик.
Decr ?
Ну не хватает мне -- и ++ :-)
  1. Public Function decr(ByRef var As Long) As Long
  2.     var = var - 1
  3.     decr = var
  4. End Function

Ответить

Номер ответа: 8
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #8
Добавлено: 13.09.09 14:52
ах да, еще мультимедийные клавиши Play\Pause, FF, REW работают.

Ответить

Номер ответа: 9
Автор ответа:
 Smith



ICQ: adamis@list.ru 

Вопросов: 153
Ответов: 3632
 Профиль | | #9 Добавлено: 13.09.09 15:04
Ну блин неподеццки прям развернулся :).
Респект.
Хочу помочь и понимаю, что врядли чем могу.

Ответить

Номер ответа: 10
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #10
Добавлено: 13.09.09 15:45
Проблема решается очевидно, если список хранить не (или не только) в виде массива, а в виде двусвязного списка.

Ответить

Номер ответа: 11
Автор ответа:
 Smith



ICQ: adamis@list.ru 

Вопросов: 153
Ответов: 3632
 Профиль | | #11 Добавлено: 13.09.09 16:08
Разве что альфа, бэттатестингом.
В этом я спец :)

Ответить

Номер ответа: 12
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #12
Добавлено: 13.09.09 16:38
Шарп, список хранится как коллекция экз. класса
Проблема небольшая в принципе. По идее при удалении играемого трека нужно indPlaying сделать равным -1, чтобы ничего не выделялось в списке цветом. Но тогда я не смогу выбрать следующий трек, возможно надо сделать некий флаг типа doNotHighlight as boolean )

Ответить

Номер ответа: 13
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #13 Добавлено: 13.09.09 18:22
Не вижу необходимости в двухсвязном списке, обычного массива/списка по-моему будет достаточно.

Что касается поведения плеера, мне кажется более очевидным поведение, когда при удалении текущего трека воспроизведение останавливается.

Ответить

Номер ответа: 14
Автор ответа:
 Smith



ICQ: adamis@list.ru 

Вопросов: 153
Ответов: 3632
 Профиль | | #14 Добавлено: 14.09.09 01:01
Winand, у тебя наверное такиеже оригинальные идеи и по внешнему виду, если помошь нужна я с удовольствием.

Ответить

Номер ответа: 15
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #15 Добавлено: 14.09.09 01:15
У кого есть оригинальные идеи по внешнему виду текстовой консоли? Пожалуйста, поделитесь, очень надо

Ответить

Страница: 1 | 2 | 3 | 4 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам