![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Сергей Р. |
|
|||
|
Unregistered |
Здавствуйте. Изучаю самостоятельно Java и наткнулся на такую проблему. Если создаешь простейший AudioPlayer на базе applet, то все хорошо и прекрасно. Но как только попытался его усложнить (например, сделать Frame, в котором можно выбирать звуковые файлы из списка) наткнулся на невозможность использовать методы интерфейса AudioClip.java. Объект который наследует Frame их использовать не может. Та же ситуация и с приложением. Как это обойти? Бандитский метод из книжек: class MyWindow extends Frame implements AudioClip{ не помогает, так как этот класс должен быть абстракным и для него не возможено создание объекта используя new. Как решаются такие проблемы?
|
|||
|
||||
| Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 50 Всего: 172 |
А можно поподробнее, т.к. я вообще с трудом понимаю что ты хочешь сделать. Можно с кодом.
-------------------- |
|||
|
||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 51 Всего: 118 |
А что это он вдруг "бандитский" ? Множественное наследование в JAVA не предусмотрено. А вот интерефейсы можно реализовывать хоть десяток. Просто надо реализовать все методы. А еще лучше код показать - тут соглашусь с Котом. |
|||
|
||||
| batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 24 Всего: 151 |
Этот класс не должен быть абстрактным, но он им будет, если ты не реализуешь все методы интерфейса AudioClip. И ничего бандитского в таком объявлении нет, так и должно быть.
-------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
| Guest |
|
|||
|
Unregistered |
Например методы play(); loop(); stop(); из AudioClip.java без проблем можно использовать в апплете, но они не доступны объекту на базе Frame.
Как к этим методам, по-простому, получить доступ в MyWindow, там, где находтится обработчик событий нажатия на соответствующие кнопки расположенные во фрейме? Понятно, что код не полный. Нужно получить путь к файлам и брать аудио фаил из списка и проигрывать. Но интересует как именно получить доступ к методам play(); loop(); stop();, все остальное просто.
|
|||
|
||||
| jer1 |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 123 Регистрация: 24.1.2005 Где: Харьков Украина Репутация: 4 Всего: 5 |
в код я не вникал, но для доступа верхнему классу пригодиться конструкция
т.е. внутри class MyWindow extends Frame можно использовать
--------------------
:w!q |
||||
|
|||||
| batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 24 Всего: 151 |
Повторяю: AudioClip - это не класс, а интерфейс. В нем нет реализации, все его методы пусты. Просто класс Applet обеспечивает реализацию этих методов. Если ты хочешь проигрывать файлы вне апплета, тебе необходимо самому обеспечить реализацию этого интерфейса.
-------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
| Zandr |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 433 Регистрация: 16.7.2004 Где: Новосибирск Репутация: 9 Всего: 13 |
Вот тебе плаер:
Но вся соль вот здесь:
То есть совершенно пофиг - во фрейме ты, или вообще без ГУИ. У класса Applet есть static метод newAudioClip( URL url) который сделает тебе клип. Только на поддержку mp3, тракинг текущей позиции, изъятие мета-информации не надейся Это сообщение отредактировал(а) Zandr - 21.4.2005, 13:29 |
||||
|
|||||
| batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 24 Всего: 151 |
Класс! А как компактно!
-------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
| Zandr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 433 Регистрация: 16.7.2004 Где: Новосибирск Репутация: 9 Всего: 13 |
2 Lamer George:
Пасиба 2 Сергей Р. А Java тут почти все самостоятельно изучают |
|||
|
||||
| batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 24 Всего: 151 |
Да в России, похоже, Java вобще мало преподают. Это мне повезло - в универе вбивали -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
| Kurt |
|
|||
|
Увлеченный ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1662 Регистрация: 22.8.2003 Где: Краснодар Репутация: 1 Всего: 36 |
[offtop]
Пофиг. Вбивай - не вбивай, пока сам не возьмешься, ничего не получится. [/offtop] -------------------- Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед) ... Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн) |
|||
|
||||
| batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 24 Всего: 151 |
Преподша у меня была большая ..., но вбивала крепко. А опыт начал копиться, когда уже на работу устроился.
-------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
| Guest |
|
|||
|
Unregistered |
Проблему уже решил сам, но всем спасибо за помощь. Многие вещи можно делать разными путями. Буду изучать, что посоветовали.
|
|||
|
||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 51 Всего: 118 |
Ну ты нас не забывай - заходи. Мы тут постоянно. Будем рады
|
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |