当前位置: 代码迷 >> Android >> android中应用service播放音乐是开启了子线程么
  详细解决方案

android中应用service播放音乐是开启了子线程么

热度:17   发布时间:2016-05-01 17:50:52.0
android中使用service播放音乐是开启了子线程么?
学习android中的service一般都会举播放音乐的例子,sdk上说service是在主线程(UI线程)中的,但是播放音乐不是一个耗时的工作么,不会阻塞UI线程么,在这一点上service和线程有什么区别呢?难道MediaPlayer是一个子线程? 不解啊,懂的朋友说一下 :)

------解决方案--------------------
那可比线程更高一个层次了 :)

是在另外一个进程中的一个系统服务来做的。

服务进程是MediaServer

一般这个服务进程负责媒体播放及照相服务功能。这是server端, 负责处理你音乐播放client端的binder transact请求的。

donut下起启动文件是 main_mediaserver.cpp

内容很简单:
int main(int argc, char** argv)
{
sp<ProcessState> proc(ProcessState::self());
sp<IServiceManager> sm = defaultServiceManager();
LOGI("ServiceManager: %p", sm.get());
AudioFlinger::instantiate();
MediaPlayerService::instantiate();
CameraService::instantiate();
ProcessState::self()->startThreadPool();
IPCThreadState::self()->joinThreadPool();
}


------解决方案--------------------
探讨
那可比线程更高一个层次了 :)

是在另外一个进程中的一个系统服务来做的。

服务进程是MediaServer

一般这个服务进程负责媒体播放及照相服务功能。这是server端, 负责处理你音乐播放client端的binder transact请求的。

donut下起启动文件是 main_mediaserver.cpp

内容很简单:
int main(int argc, ……

------解决方案--------------------
探讨

那可比线程更高一个层次了 :)

是在另外一个进程中的一个系统服务来做的。

服务进程是MediaServer

一般这个服务进程负责媒体播放及照相服务功能。这是server端, 负责处理你音乐播放client端的binder transact请求的。

donut下起启动文件是 main_mediaserver.cpp

内容很简单:
int main(int argc,……

------解决方案--------------------
你查查系统的service和普通的service的区别
------解决方案--------------------
设计到跨进程调用aidl
------解决方案--------------------
探讨
引用:

那可比线程更高一个层次了 :)

是在另外一个进程中的一个系统服务来做的。

服务进程是MediaServer

一般这个服务进程负责媒体播放及照相服务功能。这是server端, 负责处理你音乐播放client端的binder transact请求的。

donut下起启动文件是 main_mediaserver.cpp

内容很简……
  相关解决方案