Учитывая, что файловая система на Windows Phone закрытая, то осуществлять обмен с файлами можно лишь через специальное программное обеспечение под названием – Zune.
Для начала работы с данной программой, нужно Zune скачать бесплатно, и установить ее обычным способом.
Что такое программа Zune
Программа Zune являет собой мультимедийный проигрыватель, который дает возможность подключить аппарат Nokia Lumia к ПК, и совершить обмен мультимедийными файлами, такими как: музыка, видео, изображения. Сделать это можно как на телефон, так и обратно. Самое главное, что программа позволяет обновлять программное обеспечение телефона на Windows Phone.
Как передавать музыку, видео, изображения с компьютера на телефон и обратно
Вы можете скачать Zune бесплатно себе на компьютер с нашего сайта (ссылочка была немножко выше), после как вы уже скачали и установили программу Zune, запускаем ее, и выбираем: Параметры > с левой стороны, выбираем колекция > и видем 4 разные библиотеки, а именно музыка, видео, изображения, подкасты, выбираем нужное, к примеру «Музыка», нажимаем «Управление» выбираем «добавить» и выбираем нужную песню, которую вы хотите передать на телефон. Далее можете перезапустить программу, перейти во вкладку «Колекция», где вы увидите ту самую музыку, которую вы можете синхронизировать с телефоном.
Zune HD: Revisited
Для этого подключив телефон к компьютеру, выбираем нужный файл в Zune, нажимаем по нему правой клавишей мыши, а в контекстном меню выбираем «Синхронизировать с Nokia Lumia».
Как обновлять По на телефоне Nokia Lumia
Тут уже на много проще, все что нужно это подключить ваш Nokia Lumia к компьютеру, запустить программу Zune, перейти по вкладкам Параметры > Телефон > Обновить. Если ваш телефон имеет последнюю версию обновления, то ваш Nokia Lumia выдаст надпись «Телефон обновлен», если же нет, то начнется обновление, а вам остается следовать инструкциям программы.
Программа очень проста в использовании, а кроме того работает подобно Itunes для iOS, к тому же мы можете всегда Zune скачать бесплатно, т.к. эта программа распространяется свободно и для всех. Самый важный момент, что программа работает только для устройств на платформе Windows Phone 7, т.к. для WP8 нужно использовать другое ПО. Оно по правде проще, чем Zune, но на мой взгляд сделано скажем так «на шару».
Источник: nokia-house.ru
Предисловие
Zune является объектно-ориентированным набором для разработки приложений с графическим интерфейсом пользователя (GUI). Это практически полный аналог MUI (Magic User Interface), как на уровне API, так и на уровне Lookкак дома», а остальные смогут изучить понятия и особенности, общие для обоих средств. Постулируется, что:
- Программист может затратить намного меньше времени при проектировании интерфейса: в Zune нет привязки элементов интерфейса к абсолютным значениям, среда чувствительна к кеглям шрифтов и сама адаптирует размеры и расположение любых окон в зависимости от шрифтов пользователя. Zune предоставляет семантический доступ к элементам проектируемого интерфейса, а его свойства (такие, как отступ элемента от края окна в пикселях) регулируются автоматически.
- Пользователю намного легче контролировать вид и поведение интерфейса, спроектированного программистом, он получает возможность специфической настройки параметров окружения Zune.
Zune основан на системе BOOPSI (Basic Object Oriented Programming System for Intuition), унаследованной от AmigaOS и используемой в объектно-ориентированном программировании на Си. Классы Zune не являются дочерними по отношению к существующим для элементов интерфейса классам BOOPSI (т.е., не являются простым расширением их возможностей). Напротив, базовым классом (в иерархии Zune) является класс Notify — дочерний относительно корневого класса BOOPSI.
Microsoft Zune in 2023! #shorts #microsoftzune
Предпосылки
Для понимания концепции Zune, более чем приветствуется знание парадигмы объектно-ориентированного программирования (ООП). Вы можете воспользоваться Google для поиска и изучения образовательных материалов, посвящённых ООП.
Также, желательно, владение такими ключевыми понятиями AROS (и AmigaOS), как список тегов (taglist) и система BOOPSI. Хорошим подспорьем здесь, безусловно, является руководство «Amiga Reference Kernel Manuals» (известное как RKM).
Поскольку Zune является аналогом MUI, вся документация, имеющая отношение к MUI, применима и к Zune. В частности, последняя версия инструментария для разработчиков интерфейсов MUI доступна здесь. Среди прочих, в этом LHA-архиве есть 2 документа особенно рекомендуемых к прочтению:
- MUIdev.guide , документация MUI-программиста.
- PSI.c , исходный код приложения, демонстрирующего все современные методы проектирования и создания динамических объектов интерфейсов MUI.
Также этот архив содержит документацию (MUI autodocs), которая является описанием и для всех существующих классов Zune.
Реализация BOOPSI
Концепции
Класс
Класс (class), по сути, является лишь абстракцией, типом, описывающим объекты этого класса с общими структурой и поведением, и задаётся именем, родительским классом и диспетчером (dispatcher). Описание вводится путем указания типа и свойств класса:
- имя: в случае, если класс является общим (public) — это строка, характеризующая название класса и его область видимости, что делает его доступным любому приложению в системе. В случае, если класс является локальным (private) — отсутствует, и такой класс не может использоваться нигде, кроме одного-единственного приложения.
- родительский класс: все классы BOOPSI формируются в иерархическом порядке, и являются дочерними по отношению к корневому классу rootclass. Это позволяет каждому подклассу иметь собственную версию операции, производную от родительской, либо ту же самую, что и у родителя. Класс, содержащий подклассы, также называют базовым (base class) или суперклассом (super class).
- диспетчер: предоставляет доступ ко всем операциям класса, которые называют методами. Гарантирует, что каждая операция будет обеспечена исполнением соответствующего ей кода или будет передана родителю данного класса (суперклассу).
В BOOPSI типом класса является Class * или IClass .
Объект
Объект является структурной единицей (реализацией) класса. Каждый объект обладает своими свойствами (состоянием), но при этом поведение всех объектов одного класса одинаково. Объект относится к нескольким классам, если исчислять их от его класса до корневого класса rootclass, что определяется свойством наследования.
Для объекта типом BOOPSI является Object * . Он не содержит доступных напрямую полей.
Атрибут
Атрибут находится в связи с структурой данных (переменными состояния) каждого объекта: изменять эти данные непосредственно вы не можете. Возможно только установить или получить значения атрибутов объекта (также называемых свойствами) для изменения его внутреннего состояния. Атрибуты объекта (со стороны системы) ассоциированы с тегами (Tag) (со стороны программиста) (это значения, имеющие тип ULONG и связанные с TAG_USER ).
Для изменения атрибутов объектов используются функции GetAttr() и SetAttrs() .
Атрибуты (один или несколько) могут быть следующих видов:
- Назначаемый при установке (Initialization-settable)( I ) : Атрибут может быть передан как параметр лишь при создании объекта.
- Доступный для изменения (Settable)( S ) : Можно установить значение этого атрибута в любое время (не только при создании объекта).
- Доступный для чтения (Gettable)( G ) : Вы можете лишь получить значение атрибута.
Метод
Методом в BOOPSI называется функция, которой в виде параметров передаются имя объекта, его класс и сообщение:
- объект: имя объекта, над которым производится действие.
- класс: класс, соответствующий объекту.
- сообщение: содержит идентификатор (ID) метода, определяющий функцию, вызываемую диспетчером и передаваемые ей параметры
Для отправки сообщения объекту используется функция DoMethod() . Сначала метод будет применён к указанному классу. Если в классе определен этот метод, то сообщение будет обработано. В противном случае, будут перебираться родительские классы до тех пор, пока сообщение не будет обработано одним из них, или не будет достигнут rootclass (в этом случае так и не определённое сообщение будет молча отвергнуто).
Примеры
Рассмотрим основные приёмы объектно-ориентированного программирования с BOOPSI:
Получение атрибута
Попробуем запросить данные объекта MUI String:
void f(Object *string)
Здесь string — объект, MUIA_String_Contents — получаемый атрибут, result); result = XGET(string, MUIA_String_Contents);
Установка атрибута
Слегка изменим приведенную выше строку:
SetAttrs(string, MUIA_String_Contents, (IPTR)»hello», TAG_DONE);
- Указатели, передаваемые в качестве аргументов должны иметь тип IPTR (указатель на целую переменную, может содержать адрес значений типа int) иначе компилятор будет выдавать предупреждения.
- Вслед за атрибутом, функции SetAttrs передаётся список тегов, поэтому перечисление должно заканчиваться на TAG_DONE .
Вам наверняка покажется полезным макрос set() :
set(string, MUIA_String_Contents, (IPTR)»hello»);
Однако, только с помощью SetAttrs() вы сможете установить несколько атрибутов за один раз:
SetAttrs(string, MUIA_Disabled, TRUE, MUIA_String_Contents, (IPTR)»hmmm. «, TAG_DONE);
Вызов метода
Рассмотрим наиболее часто применяемый в программах Zune метод, метод обработки событий, вызываемый в основном цикле программы:
result = DoMethod(obj, MUIM_Application_NewInput, (IPTR)
- Параметры функций метода не являются списком тегов, и не должны заканчиваться с TAG_DONE
- Указатели приходится типизировать как IPTR , чтобы избежать предупреждений, от чего смысл их применения не меняется
Hello world
С начала, так с начала. Эта программа не разочарует новичка.
Исходный код
Рассмотрим наш первый реальный пример:
// gcc hello.c -lmui #include #include #include #include #include #include int main(void) < Object *wnd, *app, *but; // Создание GUI: окна wnd, текста Hello world! и кнопки Ok app = ApplicationObject, SubWindow, wnd = WindowObject, MUIA_Window_Title, «Hello world!», WindowContents, VGroup, Child, TextObject, MUIA_Text_Contents, «33cHello world!nHow are you?», End, Child, but = SimpleButton(«_Ok»), End, End, End; if (app != NULL) < ULONG sigs = 0; // Реакция на элемент закрытия окна и выход по клавише Escape DoMethod(wnd, MUIM_Notify, MUIA_Window_CloseRequest, TRUE, (IPTR)app, 2, MUIM_Application_ReturnID, MUIV_Application_ReturnID_Quit); // Реакция на нажатие кнопки выхода DoMethod(but, MUIM_Notify, MUIA_Pressed, FALSE, (IPTR)app, 2, MUIM_Application_ReturnID, MUIV_Application_ReturnID_Quit); // Открываем окно wnd set(wnd, MUIA_Window_Open, TRUE); // Проверяем, что окно wnd действительно было открыто if (XGET(wnd, MUIA_Window_Open)) < // Основной цикл приложения Zune while((LONG)DoMethod(app, MUIM_Application_NewInput, (IPTR) if (sigs) < sigs = Wait(sigs | SIGBREAKF_CTRL_C); if (sigs >> > // Уничтожаем наше приложение со всеми его объектами MUI_DisposeObject(app); > return 0; >
Комментарии
Замечание
«Zune был ошибкой, мы просто пытались догнать iPod»
Портативный мультимедийный плеер от Microsoft под названием Zune был выпущен на рынок для конкуренции с набирающим популярность невероятными темпами iPod. Однако стать сильным конкурентом плееру Apple у Zune не получилось, даже несмотря на более широкий функционал, который предлагал редмондовский плеер. Например, Zune умел делиться треками «без проводов» и поддерживал большее количество форматов мультимедийных файлов.
Почему же Zune провалился на рынке с таким оглушительным треском, ведь продукт был не таким и неудачным с технической точки зрения? Если верить словам одного из бывших топ-менеджеров Microsoft Робби Баху (Robbie Bach), который на тот момент возглавлял развлекательное подразделение (именно он работал над XBOX, Zune и многими другими продуктами), то причина провала была проста: выпуск плеера был не более, чем попыткой догнать Apple. Запоздалой попыткой.
В своем интервью порталу Northwest Entrepreneur Network в Сиэтле Бах заявил:
Если бы я мог вернуться в прошлое и заняться Zune снова, я не стал бы этого делать. Я бы вообще не стал заниматься портативными медиаплеерами. Рынок принадлежал целиком и полностью Apple и их iPod, и для нас уже не было места. Если честно, то нам попросту не хватило смелости начать экспансию первыми и вышло так, что мы казались в роли догоняющих с Zune, который хоть и не был плохим продуктом, но так и остался позади. К сожалению, про наш плеер нельзя было сказать: «Ух, мне срочно нужно добраться до магазина и купить эту штуку!».
Zune мог сорвать куш, если бы он появился раньше. Конечно, кроме общей запоздалости, у плеера были и другие проблемы. Например, ужасный клиент синхронизации с настольным компьютером, отсутствие его Mac-версии, что было очень важным, многие пользователи iPod также пользовались Mac.
Немного грустно, правда. Zune был неплохим продуктом с отличным потенциалом. Если бы Microsoft включились в эту гонку, уделяя большее внимание своему плееру, то вполне вероятно, что Zune стал бы значимым конкурентом iPod. Тогда быть может и iPod бы «оброс» новыми функциями как, например, общий доступ к медиатеке и поддержка большего количества форматов.
Источник: appleinsider.ru