Как к объектам дисплейного списка на консоли в C#

RTSP - это потоковый протокол в реальном времени. Это означает, что вы можете транслировать в режиме реального времени все, что захотите, например, видео, аудио, текст и так далее. RTP - это транспортный протокол, который используется для передачи мультимедийных данных, согласованных по RTSP. Таким образом, мы можем сказать, что RTSP закончился по RTP. Библиотека SharpRSTP, которая упоминается в моем комментарии, поддерживает в UWP. Если вы хотите только потоковое аудио, вы можете использовать G711Payload. G711 - это обычный аудио кодер. Конечно, вы можете найти другую сетевую библиотеку. Вы можете обратиться к сэмплу RTSPClient.cs в репозитории.

Вы можете выполнить поиск образца (название - TCP Audio Streamer and Player (Voice Chat over IP)), он работает отлично. Это собственный проект VoIP для отправки и получения аудиоданных по TCP. Вы можете переместить клиента в UWP.

40
задан Spontifixus 17 April 2013 в 13:55
поделиться

3 ответа

На самом деле вы можете сделать это довольно просто, поскольку в списке есть метод ForEach , а так как вы может передать Console.WriteLine как группу методов. Затем компилятор будет использовать неявное преобразование для преобразования группы методов в, в этом случае, в Action и выберет наиболее конкретный метод из группы, в этом случае Console.WriteLine ( int) :

  var list = new List<int>(Enumerable.Range(0, 50));

  list.ForEach(Console.WriteLine);

Работает и со строками =)

Быть крайне педантичным (и я не предлагаю изменить ваш ответ - просто комментировать ради интереса) Console.WriteLine является группой методов. Затем компилятор использует неявное преобразование из группы методов в Action , выбирая наиболее конкретный метод ( Console.

54
ответ дан 27 November 2019 в 01:07
поделиться

Из того, что я могу сказать, к сожалению, невозможно настроить цвет текста, отображаемого в индексе, ближайшем Мне удалось прийти - возможность изменить цвет фона и шрифт индекса.

В кулинарной книге разработчиков iPhone от Эрики Садун есть некоторый код, который показывает, как получить доступ к представлению UITableViewIndex (недокументированный класс). , Вы можете найти ссылку на нее на странице 175 книги, если она у вас есть. Который дает доступ к цвету фона и шрифту. Вы можете увидеть неофициальный документ, относящийся к этому классу здесь .

ПРЕДУПРЕЖДЕНИЕ Это недокументированное использование недокументированного класса, поэтому вы должны быть осторожны с его использованием.

Вот код фрагмент из поваренной книги с небольшими изменениями:

- (UITableViewCell *)tableView:(UITableView *)tv cellForRowAtIndexPath:(NSIndexPath *)indexPath {    

  for(UIView *view in [tv subviews])
  {
    if([[[view class] description] isEqualToString:@"UITableViewIndex"])
    {

      [view setBackgroundColor:[UIColor whiteColor]];
      [view setFont:[UIFont systemFontOfSize:14]];
    }
  }

  //rest of cellForRow handling...

} 

Это иллюстрирует, как вы можете получить доступ к представлению UITableViewIndex и изменить его в некоторых аспектах. Похоже, что представление не имеет никаких подпредставлений, поэтому, вероятно, оно выполняет произвольное рисование с массивом заголовков индекса.

Это не идеально, но, надеюсь, это немного поможет.

Пол

ForEach
заключается в том, что если у вас есть конкретный тип списка, он будет использовать наиболее подходящую перегрузку. Например:

List<int> integers = new List<int> { 1, 2, 3 };
List<string> strings = new List<string> { "a", "b", "c" };

integers.ForEach(Console.WriteLine);
strings.ForEach(Console.WriteLine);

При записи целых чисел будет использоваться Console.WriteLine (int) , тогда как при записи строк будет использоваться Console.WriteLine (string) . Если конкретная перегрузка недоступна (или если вы просто используете общий список List и компилятор не знает, что такое T ), он будет использовать консоль .WriteLine (object) .

Обратите внимание на использование Console.WriteLine в качестве группы методов. Это более кратко, чем использование лямбда-выражения, и на самом деле немного более эффективно (поскольку делегат просто будет вызовом Console.WriteLine ,

24
ответ дан 27 November 2019 в 01:07
поделиться

Вы также можете использовать встроенный foreach List, например:

List<T>.ForEach(item => Console.Write(item));

Этот код также значительно запускает ] быстрее!

Приведенный выше код также позволяет вам манипулировать Console.WriteLine, например:

List<T>.ForEach(item => Console.Write(item + ",")); //Put a,b etc.
15
ответ дан 27 November 2019 в 01:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: