Пример автоматически-сгенерированного веб-плеера для сайта (вставить в html)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
<hr><center><p><h3>* TM MUSIC PLAYER *</h3></p> <audio id='TM' controls src='https://musify.club/track/dl/5497392/deep-purple-knocking-at-your-back-door.mp3' type='audio/mpeg'></audio></center><hr> <script language='javascript'> let links=[ 'https://musify.club/track/dl/5497392/deep-purple-knocking-at-your-back-door.mp3', 'https://musify.club/track/dl/5497393/deep-purple-under-the-gun.mp3', 'https://musify.club/track/dl/5497394/deep-purple-nobodys-home.mp3', 'https://musify.club/track/dl/5497395/deep-purple-mean-streak.mp3', 'https://musify.club/track/dl/5497396/deep-purple-perfect-strangers.mp3', 'https://musify.club/track/dl/5497397/deep-purple-a-gypsys-kiss.mp3', 'https://musify.club/track/dl/5497398/deep-purple-wasted-sunsets.mp3', 'https://musify.club/track/dl/5497399/deep-purple-hungry-daze.mp3', 'https://musify.club/track/dl/63846/deep-purple-bad-attitude.mp3', 'https://musify.club/track/dl/63847/deep-purple-the-unwritten-law.mp3', 'https://musify.club/track/dl/63848/deep-purple-call-of-the-wild.mp3', 'https://musify.club/track/dl/63850/deep-purple-black-and-white.mp3', 'https://musify.club/track/dl/63851/deep-purple-hard-lovin-woman.mp3', 'https://musify.club/track/dl/63852/deep-purple-the-spanish-archer.mp3', 'https://musify.club/track/dl/63853/deep-purple-strangeways.mp3', 'https://musify.club/track/dl/63854/deep-purple-mitzie-dupree.mp3', 'https://musify.club/track/dl/63855/deep-purple-dead-or-alive.mp3', 'https://musify.club/track/dl/5497552/deep-purple-the-battle-rages-on.mp3', 'https://musify.club/track/dl/5497553/deep-purple-lick-it-up.mp3', 'https://musify.club/track/dl/5497554/deep-purple-anya.mp3', 'https://musify.club/track/dl/5497555/deep-purple-talk-about-love.mp3', 'https://musify.club/track/dl/5497556/deep-purple-time-to-kill.mp3', 'https://musify.club/track/dl/5497557/deep-purple-ramshackle-man.mp3', 'https://musify.club/track/dl/5497558/deep-purple-a-twist-in-the-tale.mp3', 'https://musify.club/track/dl/5497559/deep-purple-nasty-piece-of-work.mp3', 'https://musify.club/track/dl/5497560/deep-purple-solitaire.mp3', 'https://musify.club/track/dl/5497561/deep-purple-one-mans-meat.mp3', 'https://musify.club/track/dl/5497400/deep-purple-king-of-dreams.mp3', 'https://musify.club/track/dl/5497401/deep-purple-the-cut-runs-deep.mp3', 'https://musify.club/track/dl/5497402/deep-purple-fire-in-the-basement.mp3', 'https://musify.club/track/dl/5497403/deep-purple-fortuneteller.mp3', 'https://musify.club/track/dl/5497404/deep-purple-truth-hurts.mp3', 'https://musify.club/track/dl/5497405/deep-purple-love-conquers-all.mp3', 'https://musify.club/track/dl/5497406/deep-purple-breakfast-in-bed.mp3', 'https://musify.club/track/dl/5497407/deep-purple-too-much-is-not-enough.mp3', 'https://musify.club/track/dl/5497408/deep-purple-wicked-ways.mp3', 'https://musify.club/track/dl/6201747/deep-purple-mitzi-dupree.mp3' ]; let TOTAL=37; let CURRENT=0; var au=document.getElementById('TM'); au.onerror=function() { var ua=document.getElementById('TM'); CURRENT++; if (CURRENT >= TOTAL) CURRENT=0; ua.src=links[CURRENT]; ua.play(); }; au.onended=function() { var ua=document.getElementById('TM'); CURRENT++; if (CURRENT >= TOTAL) CURRENT=0; ua.src=links[CURRENT]; ua.play(); }; </script> |
Исходный код генератора плееров (консольное приложение C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 |
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace LinksToAudio { class Program { static void Main(string[] args) { string Html = File.ReadAllText(args[0]); List<string> links = ExtractMp3Links(Html); Console.WriteLine("<hr><center><p><h3>* TM MUSIC PLAYER *</h3></p>"); Console.WriteLine("<audio id='TM' controls src='" + links[0] + "' type='audio/mpeg'></audio></center><hr>"); Console.WriteLine(); Console.WriteLine("<script language='javascript'>"); Console.WriteLine("let links=["); for (int i = 0; i < links.Count; i++) { Console.Write("'{0}'", links[i]); if (i < links.Count - 1) Console.Write(","); Console.WriteLine(); } Console.WriteLine("];"); Console.WriteLine(); Console.WriteLine("let TOTAL={0};", links.Count); Console.WriteLine("let CURRENT=0;"); Console.WriteLine(); Console.WriteLine("var au=document.getElementById('TM');"); Console.WriteLine(@" au.onerror=function() { var ua=document.getElementById('TM'); CURRENT++; if (CURRENT >= TOTAL) CURRENT=0; ua.src=links[CURRENT]; ua.play(); }; au.onended=function() { var ua=document.getElementById('TM'); CURRENT++; if (CURRENT >= TOTAL) CURRENT=0; ua.src=links[CURRENT]; ua.play(); }; "); Console.WriteLine("</script>"); } static List<string> ExtractMp3Links(string html) { List<string> result = new List<string>(); for (int pos = 0; pos < html.Length; pos++) { if (html.Length - pos < 10) break; string beg = html.Substring(pos, "https://".Length); if (beg.StartsWith("http://") || beg.StartsWith("https://")) { int end = pos + "http".Length; while ( (end < html.Length - 4) && ( Char.IsLetter(html[end]) || Char.IsDigit(html[end]) || html[end] == '-' || html[end] == '_' || html[end] == '/' || html[end] == ':' || html[end] == '\\' || html[end] == '.' || html[end] == '?' || html[end] == '&' || html[end] == '=' ) && !html.Substring(end, ".mp3".Length).Equals(".mp3") ) end++; if (html.Substring(end, ".mp3".Length).Equals(".mp3")) { string link = html.Substring(pos, end + "mp3".Length - pos + 1); bool found = false; foreach (string r in result) if (r.Equals(link)) { found = true; break; } if (!found) result.Add(link); pos = end + ".mp3".Length; } } } return result; } } } |
Программа выше генерирует код веб-плеера mp3 по текстовому файлу или html сайта для вставки в html страничку. Без флеша, без мутных аудиопотоков, своё радио - за вечер, даже на бесплатном хостинге типа https://2x2forum.ru или https://sites.google.com и даже без платы за файловое хранилище, если ссылки давать на чужой сервер - там за хостинг файлов уже заплачено!
Пример встраивания - низ этого форума. Лайфхак, Таломир Миротал.
@Talomir Кстати, не обязательно в футер форума вставлять, если делать своё радио с бесплатным хостингом. Можно встроить фрагмент плеера html блоком на гугл сайтах (бесплатный хостинг сайта https://sites.google.com), я оттуда ушёл так как дофига отслеживания и рекламного преследования в городе, от ГУГЛа. Но теоретически-можно, если преследование гуглом не беспокоит.... Или на любом другом бесплатном хостинге, где можно встроить фрагмент html в конструкторе сайтов или закачать свои html файлы...!
Генератор радиостанций для web-страниц. Длинной 2 экрана исходника на C#. Генерирует код радиостанции по тектовому файлу со ссылками на mp3 или по сохранённой html страничке с музыкой (в ней должны быть ссылки на .mp3, которые генератор извлекает для создаваемого кода плеера).
5 минут на создание радиостанции.
Глобальная достижимость, прослушивание во всех точках планеты где есть интернет.
Глобальная совместимость. Сгенерированное радио играет на MacOS, Windows, Linux, Android. iOS, на смартфонах, кнопочных, планшетах, ноутбуках и настольных компьютерах - везде, где есть современный интернет браузер.
Простота плеера ведущая к надёжности и простоте исправлений и отладки, дописывания и редизайна плеера.
Бесплатные исходник генератора и плеера.
900dh, wait me on ai articles projects... Talomir Mirotal (TM) :-)
Фотки сгенерированного плеера (который можно додизайнить под конкретную страниц\сайт\форум)
На форуме https://anti-psy.2x2forum.ru
На пустой странице:
Генерируйте, дизайните сгенерированный html фрагмент с плеером под себя. Скорее всего неделю потрачу на отказоустойчивость скрипта, сейчас он перестаёт играть при пропажах\помехах интернету в части браузеров. Если улучшу - выложу в этой теме вторую версию, и генератора плееров и сгенерированный пример!
Вроде проблема именно в перегруженной странице, сложного форума, на пустой странице играет нормально даже с плохим интернетом.
РАДИОСТАНЦИЯ DEEP
Сделал на этом движке плеера сайт радиостанции DEEP с омолаживающи эффектом. Крутит 350 раритетных композиций deep purple 50-ти летней давности, погружая слушателя в атмосферу юности или детства. Смета:
Больше суток не спал, теперь сутки спать, день отдыхать, опять спать и садиться за ИИ для написания статей для сайтов, превосходящий любого автора интернета в выбранной области :-)
Послушать станцию (и на телефоне) или даже добавить в закладки: https://talomir.wixsite.com/deep
@Talomir