Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Операционные системы > Мобильные ОС (Android, iOS, Windows Phone)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.07.2013, 01:05   #1
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
Восклицание MediaPlayer.create(Context context, Uri uri) - какой Context?

Есть метод MediaPlayer.create(Context context, Uri uri);
Как определить, ЧТО подставлять на место context при вызове? Не от балды, а осмысленно.
Зависит ли это от того, вызывается ли это в обработчике кнопки, просто из кода Activity onCreate или откуда-то ещё?
При вызове приложение вылетает. Но не во всех случаях. Использовал getBaseContext(), но при вызове из Activity onCreate это не работает.
В Андроиде это сплошь и всюду.
motorway вне форума Ответить с цитированием
Старый 10.07.2013, 02:05   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

какой Create? чем вас через new не устраивает?
http://developer.android.com/guide/t...diaplayer.html

http://developer.android.com/referen...diaPlayer.html
Цитата:
В Андроиде это сплошь и всюду.
интересно, почему у меня все отлично...
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 10.07.2013 в 02:08.
Пепел Феникса вне форума Ответить с цитированием
Старый 10.07.2013, 11:12   #3
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

По первой ссылке в примере там всё равно getApplicationContext() в качестве параметра. Интересует, почему именно такой параметр. По второй ссылке как раз указан метод Create(Context, Uri). Я про то, что часто не ясно, что подставлять в качестве Context и почему.
motorway вне форума Ответить с цитированием
Старый 10.07.2013, 17:58   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

кроме как контекст своего приложения вы все равно ничего вставить не можете по сути.

Цитата:
getApplicationContext()
а вы писали про getBaseContext.
примените как в доках написано, поидее должно работать.

(кто такой контекст, там тоже можно найти спокойно)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 10.07.2013, 19:04   #5
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Я перепробовал разные варианты. В том числе про эти различия пишут на известном англоязычном форуме, там не всё так просто.
Суть в том, что из обработчика нажатия кнопки на Activity метод работает, а из onCreate Activity - нет.
motorway вне форума Ответить с цитированием
Старый 10.07.2013, 19:10   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

при создании активити еще не создана,
у вас еще есть OnStart.
поидее там надо это делать.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 10.07.2013, 19:55   #7
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Поместил туда вызов:
Код:
07-10 19:50:51.563: E/AndroidRuntime(8024): FATAL EXCEPTION: main 07-10 19:50:51.563: E/AndroidRuntime(8024): android.app.SuperNotCalledException: Activity {myappname/myappname.PlayerActivity} did not call through to super.onStart()
motorway вне форума Ответить с цитированием
Старый 10.07.2013, 21:29   #8
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Цитата:
Сообщение от motorway Посмотреть сообщение
Поместил туда вызов:
Код:
07-10 19:50:51.563: E/AndroidRuntime(8024): FATAL EXCEPTION: main 07-10 19:50:51.563: E/AndroidRuntime(8024): android.app.SuperNotCalledException: Activity {myappname/myappname.PlayerActivity} did not call through to super.onStart()
Ээээ
Цитата:
Activity {myappname/myappname.PlayerActivity} did not call through to super.onStart()
super.onStart() ?

Вобще не ясно в чем именно проблема. Есть activity? Это ваш контекст, есть Application - это ваш контекст. Да любой наследник Context есть Context, используйте его при создании MediaPlayer.
BOBAH13 вне форума Ответить с цитированием
Старый 10.07.2013, 21:47   #9
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Проблема в том, что когда я сначала создал запуск проигрывания в сервисе mp3Service.playSong(Context, url) - по нажатию кнопки на загруженном Activity это работало. Но когда переместил в onCreate Activity, проигрывание при загрузке Activity не начиналось сразу. То есть, звук должен идти сразу после загрузки Activity. Мне посоветовали перенести в onStart. Появился вот такой лог. Может, проблема не в контексте, а в том, что в onCreate пока нельзя вызывать эту функцию сервиса? Не ясно.
motorway вне форума Ответить с цитированием
Старый 11.07.2013, 00:57   #10
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Цитата:
Сообщение от motorway Посмотреть сообщение
Проблема в том, что когда я сначала создал запуск проигрывания в сервисе mp3Service.playSong(Context, url) - по нажатию кнопки на загруженном Activity это работало. Но когда переместил в onCreate Activity, проигрывание при загрузке Activity не начиналось сразу. То есть, звук должен идти сразу после загрузки Activity. Мне посоветовали перенести в onStart. Появился вот такой лог. Может, проблема не в контексте, а в том, что в onCreate пока нельзя вызывать эту функцию сервиса? Не ясно.
Все работает, и не понятно что куда и зачем вы перенесли. Приведите полный код части вашего сервиса и активити связанной с MediaPlayer.
BOBAH13 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Альтернатива TJpegImage / ошибка Error creating device context Puhovoi Общие вопросы Delphi 1 29.03.2013 11:47
GetDC TThread Synchronize - error creating window device context ZBEP Общие вопросы Delphi 2 28.08.2012 23:50
create a number Alexander1205 Общие вопросы C/C++ 1 22.01.2011 00:58
Отображение картинки на кнопке WPF. Загрузка картинки из ресурсов. Проблема с Uri. Casper-SC Общие вопросы .NET 0 27.06.2010 23:11
Метод Create Skyline174Rus Помощь студентам 7 11.02.2010 15:11