Discuz! Board

 找回密码
 
搜索
查看: 34657|回复: 51

[RTSPPlayer] RTSPPlayer: Android上的一个简易的RTSP流媒体播放器

  [复制链接]

676

主题

2229

帖子

3万

积分

吼山居士

Rank: 9Rank: 9Rank: 9

积分
34932
QQ
发表于 2012-5-25 13:27:35 | 显示全部楼层 |阅读模式
前阵子,有位仁兄在论坛里求android的流媒体播放器(http://bbs.rosoo.net/thread-13768-1-1.html
由于昨天被人撞了一下,没办法去公司,就准备着手做个支持RTSP的播放器。

最新版本下载:http://rg4.net/rtspplayer

1.2 (2012/06/27)
    Fix bug: Some H.264 video stream can not be parsed property issue(rtp stream does not contain SPS & PPS).
    Fix bug: huge video(larger than your phone's resolution) can not show properly issue.

1.1 (2012/06/17)
    Change application UI to fullscreen mode(@android:style/Theme.NoTitleBar.Fullscreen),
    Change VideoPlayer activity to LANDSCAPE mode to maximize the video.
    Add a menu for main UI.
    Add a preset URL list(hard coded url save in a spinner), so that you can just select live streaming video from the list by just one click.
    Fix large video display resolution bug.

    Visit http://rg4.net/a/2012/125.html for details.

1.0 (2012-5-25):
经过一天的努力,终于出来一个版本了,但目前只能支持RTP over TCP模式的MPEG4, H.264, MJPEG的视频(由于没有本地设备,RTP over UDP只能去连internet上的,但这个流量实在是我消费不起的,所以就先算了吧)。
本版本在我的手机(小米MiOne,原生Android 4.0.3)以及我老婆的手机(Sumsung 9001,Android 2.3.6)上测试通过。

这个版本是我最初写的、旧的版本,最新版本请到http://rg4.net/rtspplayer下载。
1.0 下载:

有条件的开放源码
RTSPPlayer的源码可以开放,但条件是你能为流媒体开发论坛作出相应的贡献,帮他人回答问题,解决问题,并达到中级以上会员,那你可以发mail给我,我会视情况来决定是否可以给你完整的源码。
注意:刷分是没有用的,即使你刷到高级会员,如果你没有怎么帮到他人,那一样是0。

已经得到源码的童鞋希望你能遵守规则,在相应的代码里保留著作权信息。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?

x
拒收论坛短消息,有问题请直接在论坛提问。

所有我的答复与微博同步,欢迎收听我的腾讯微博, 新浪微博,第一时间得到问题答复。

Item 1: Don't abuse your power        条款一:不要滥用权利
Item 2: Share expert knowledge        条款二:分享你的知识
Item 3: Respect other people's privacy        条款三:尊重他人的隐私
Item 4: Make yourself look good online        条款四:给自己网上留个好印象
Item 5: Help keep flame wars under control        条款五:平心静气地争论
Item 6: Respect other people's time and bandwidth        条款六:尊重别人的时间和带宽
回复

使用道具 举报

676

主题

2229

帖子

3万

积分

吼山居士

Rank: 9Rank: 9Rank: 9

积分
34932
QQ
 楼主| 发表于 2012-5-25 13:34:02 | 显示全部楼层
不过,说实在的,这个很多准备工作要做,我现在的电脑基本上是全新的,什么也没有(二个月前,我原来的NB的硬盘坏掉了,所有资料都丢失了),所以,就从配置环境讲起。

1. android SDK/NDK在之前的文章里都已经有讲了,略过。(http://bbs.rosoo.net/thread-9258-1-1.html
2. ffmpeg编译也有讲了,也略过。(http://bbs.rosoo.net/thread-9394-1-1.html
3. android源码下载。(http://source.android.com/source/downloading.html)

本文环境是在ubuntu 11.04+下获取并编译android 2.3.3_r1的源码,记录下过程,方便自己备份的同时也希望能对后来者有所帮助。

官网上的要求信息为:
        Python 2.4 -- 2.7, which you can download from python.org.
        JDK 6 if you wish to build Gingerbread or newer; JDK 5 for Froyo or older. You can download both from java.sun.com.
        Git 1.7 or newer. You can find it at git-scm.com.

一、下载前准备工作

Note: The source download is approximately 6GB in size. You will need 25GB free to complete a single build, and up to 80GB (or more) for a full set of builds.

1.首先,准备好所需磁盘空间后,就来安装开发过程中需要的一些开发包,在终端中执行以下命令:

$ sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev libncurses5-dev x11proto-core-dev libx11-dev libreadline6-dev libgl1-mesa-dev tofrodos python-markdown libxml2-utils lib64z1-dev libc6-dev-amd64 g++-multilib lib64stdc++6

2.安装java环境

安装Java 6,因为在现在的ubuntu系统包库里,已经不再包含JDK,因此我们需要手动添加库,执行如下命令:

$ sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
$ sudo apt-get update
$ sudo apt-get install sun-java6-jdk

之前安装jdk时,官网上给出了两条添加库语句,第二条

$ sudo add-apt-repository "deb-src http://archive.canonical.com/ubuntu lucid partner"

是会提示错误的

Error: 'deb-src http://archive.canonical.com/ lucid partner' invalid

昨天再看官网已经更新了,去掉了这一条,很给力啊有木有~

二、开始下载源码

现在我们已经准备好了android源码开发所需的环境(无错误),下载源码的过程由于Android的源码很是庞大,需要分Android源码和内核两部分获取。内核部分的源码我暂时是不用的,所以这里只下载源码。

1.新建文件夹,并初始化repo:
  1. jacky@jacky:~$ mkdir bin
  2. jacky@jacky:~$ cd bin/
  3. jacky@jacky:~/bin$ ls
  4. repo
  5. jacky@jacky:~/bin$ chmod a+x repo
  6. jacky@jacky:~/bin$ curl <a target="_blank" href="https://dl-ssl.google.com/dl/googlesource/git-repo/repo">https://dl-ssl.google.com/dl/googlesource/git-repo/repo</a> > ~/bin/repo
复制代码
% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 20183  100 20183    0     0  42004      0 --:--:-- --:--:-- --:--:-- 59361
  1. jacky@jacky:~/bin$ mkdir working

  2. jacky@jacky:~/bin$ ./repo init -u https://android.googlesource.com/platform/manifest
复制代码
gpg: keyring `/home/jacky/.repoconfig/gnupg/secring.gpg' created
gpg: keyring `/home/jacky/.repoconfig/gnupg/pubring.gpg' created
gpg: /home/jacky/.repoconfig/gnupg/trustdb.gpg: trustdb created
gpg: key 920F5C65: public key "Repo Maintainer <repo@android.kernel.org>" imported
gpg: Total number processed: 1
gpg:               imported: 1

Get https://android.googlesource.com/tools/repo
remote: Counting objects: 1605, done
remote: Finding sources: 100% (86/86)
remote: Total 1605 (delta 1054), reused 1605 (delta 1054)
Receiving objects: 100% (1605/1605), 468.60 KiB | 214 KiB/s, done.
Resolving deltas: 100% (1054/1054), done.
From https://android.googlesource.com/tools/repo
* [new branch]      maint      -> origin/maint
* [new branch]      master     -> origin/master
* [new branch]      stable     -> origin/stable
* [new tag]         v1.0       -> v1.0
* [new tag]         v1.0.1     -> v1.0.1
* [new tag]         v1.0.2     -> v1.0.2
* [new tag]         v1.0.3     -> v1.0.3
* [new tag]         v1.0.4     -> v1.0.4
* [new tag]         v1.0.5     -> v1.0.5
* [new tag]         v1.0.6     -> v1.0.6
* [new tag]         v1.0.7     -> v1.0.7
* [new tag]         v1.0.8     -> v1.0.8
* [new tag]         v1.0.9     -> v1.0.9
* [new tag]         v1.1       -> v1.1
* [new tag]         v1.2       -> v1.2
* [new tag]         v1.3       -> v1.3
* [new tag]         v1.3.1     -> v1.3.1
* [new tag]         v1.3.2     -> v1.3.2
* [new tag]         v1.4       -> v1.4
* [new tag]         v1.4.1     -> v1.4.1
* [new tag]         v1.4.2     -> v1.4.2
* [new tag]         v1.4.3     -> v1.4.3
* [new tag]         v1.4.4     -> v1.4.4
* [new tag]         v1.5       -> v1.5
* [new tag]         v1.5.1     -> v1.5.1
* [new tag]         v1.6       -> v1.6
* [new tag]         v1.6.1     -> v1.6.1
* [new tag]         v1.6.10    -> v1.6.10
* [new tag]         v1.6.10.1  -> v1.6.10.1
* [new tag]         v1.6.10.2  -> v1.6.10.2
* [new tag]         v1.6.2     -> v1.6.2
* [new tag]         v1.6.3     -> v1.6.3
* [new tag]         v1.6.4     -> v1.6.4
* [new tag]         v1.6.5     -> v1.6.5
* [new tag]         v1.6.6     -> v1.6.6
* [new tag]         v1.6.7     -> v1.6.7
* [new tag]         v1.6.7.1   -> v1.6.7.1
* [new tag]         v1.6.7.2   -> v1.6.7.2
* [new tag]         v1.6.7.3   -> v1.6.7.3
* [new tag]         v1.6.7.4   -> v1.6.7.4
* [new tag]         v1.6.7.5   -> v1.6.7.5
* [new tag]         v1.6.8     -> v1.6.8
* [new tag]         v1.6.8.1   -> v1.6.8.1
* [new tag]         v1.6.8.10  -> v1.6.8.10
* [new tag]         v1.6.8.11  -> v1.6.8.11
* [new tag]         v1.6.8.2   -> v1.6.8.2
* [new tag]         v1.6.8.3   -> v1.6.8.3
* [new tag]         v1.6.8.4   -> v1.6.8.4
* [new tag]         v1.6.8.5   -> v1.6.8.5
* [new tag]         v1.6.8.6   -> v1.6.8.6
* [new tag]         v1.6.8.7   -> v1.6.8.7
* [new tag]         v1.6.8.8   -> v1.6.8.8
* [new tag]         v1.6.8.9   -> v1.6.8.9
* [new tag]         v1.6.9     -> v1.6.9
* [new tag]         v1.6.9.1   -> v1.6.9.1
* [new tag]         v1.6.9.2   -> v1.6.9.2
* [new tag]         v1.6.9.3   -> v1.6.9.3
* [new tag]         v1.6.9.4   -> v1.6.9.4
* [new tag]         v1.6.9.5   -> v1.6.9.5
* [new tag]         v1.6.9.6   -> v1.6.9.6
* [new tag]         v1.6.9.7   -> v1.6.9.7
* [new tag]         v1.6.9.8   -> v1.6.9.8
* [new tag]         v1.7       -> v1.7
* [new tag]         v1.7.1     -> v1.7.1
* [new tag]         v1.7.2     -> v1.7.2
* [new tag]         v1.7.3     -> v1.7.3
* [new tag]         v1.7.3.1   -> v1.7.3.1
* [new tag]         v1.7.4     -> v1.7.4
* [new tag]         v1.7.4.1   -> v1.7.4.1
* [new tag]         v1.7.4.2   -> v1.7.4.2
* [new tag]         v1.7.4.3   -> v1.7.4.3
* [new tag]         v1.7.5     -> v1.7.5
* [new tag]         v1.7.6     -> v1.7.6
* [new tag]         v1.7.6.1   -> v1.7.6.1
* [new tag]         v1.7.7     -> v1.7.7
* [new tag]         v1.7.7.1   -> v1.7.7.1
* [new tag]         v1.7.7.2   -> v1.7.7.2
* [new tag]         v1.7.7.3   -> v1.7.7.3
* [new tag]         v1.7.7.4   -> v1.7.7.4
* [new tag]         v1.7.7.5   -> v1.7.7.5
* [new tag]         v1.7.7.6   -> v1.7.7.6
* [new tag]         v1.7.8     -> v1.7.8
* [new tag]         v1.7.8.1   -> v1.7.8.1
* [new tag]         v1.7.8.2   -> v1.7.8.2
* [new tag]         v1.8.0     -> v1.8.0
* [new tag]         v1.8.1     -> v1.8.1
* [new tag]         v1.8.2     -> v1.8.2
* [new tag]         v1.9.0     -> v1.9.0
* [new tag]         v1.9.1     -> v1.9.1

... A new repo command ( 1.16) is available.
... You should upgrade soon:

    cp /home/jacky/bin/.repo/repo/repo /home/jacky/bin/repo

Get https://android.googlesource.com/platform/manifest
remote: Counting objects: 362, done
remote: Finding sources: 100% (56/56)
remote: Total 362 (delta 87), reused 362 (delta 87)
Receiving objects: 100% (362/362), 132.33 KiB, done.
Resolving deltas: 100% (87/87), done.
From https://android.googlesource.com/platform/manifest
* [new branch]      android-1.6_r1 -> origin/android-1.6_r1
* [new branch]      android-1.6_r1.1 -> origin/android-1.6_r1.1
* [new branch]      android-1.6_r1.2 -> origin/android-1.6_r1.2
* [new branch]      android-1.6_r1.3 -> origin/android-1.6_r1.3
* [new branch]      android-1.6_r1.4 -> origin/android-1.6_r1.4
* [new branch]      android-1.6_r1.5 -> origin/android-1.6_r1.5
* [new branch]      android-1.6_r2 -> origin/android-1.6_r2
* [new branch]      android-2.0.1_r1 -> origin/android-2.0.1_r1
* [new branch]      android-2.0_r1 -> origin/android-2.0_r1
* [new branch]      android-2.1_r1 -> origin/android-2.1_r1
* [new branch]      android-2.1_r2 -> origin/android-2.1_r2
* [new branch]      android-2.1_r2.1p -> origin/android-2.1_r2.1p
* [new branch]      android-2.1_r2.1p2 -> origin/android-2.1_r2.1p2
* [new branch]      android-2.1_r2.1s -> origin/android-2.1_r2.1s
* [new branch]      android-2.2.1_r1 -> origin/android-2.2.1_r1
* [new branch]      android-2.2.1_r2 -> origin/android-2.2.1_r2
* [new branch]      android-2.2.2_r1 -> origin/android-2.2.2_r1
* [new branch]      android-2.2.3_r1 -> origin/android-2.2.3_r1
* [new branch]      android-2.2.3_r2 -> origin/android-2.2.3_r2
* [new branch]      android-2.2.3_r2.1 -> origin/android-2.2.3_r2.1
* [new branch]      android-2.2_r1 -> origin/android-2.2_r1
* [new branch]      android-2.2_r1.1 -> origin/android-2.2_r1.1
* [new branch]      android-2.2_r1.2 -> origin/android-2.2_r1.2
* [new branch]      android-2.2_r1.3 -> origin/android-2.2_r1.3
* [new branch]      android-2.3.1_r1 -> origin/android-2.3.1_r1
* [new branch]      android-2.3.2_r1 -> origin/android-2.3.2_r1
* [new branch]      android-2.3.3_r1 -> origin/android-2.3.3_r1
* [new branch]      android-2.3.3_r1.1 -> origin/android-2.3.3_r1.1
* [new branch]      android-2.3.4_r0.9 -> origin/android-2.3.4_r0.9
* [new branch]      android-2.3.4_r1 -> origin/android-2.3.4_r1
* [new branch]      android-2.3.5_r1 -> origin/android-2.3.5_r1
* [new branch]      android-2.3.6_r0.9 -> origin/android-2.3.6_r0.9
* [new branch]      android-2.3.6_r1 -> origin/android-2.3.6_r1
* [new branch]      android-2.3.7_r1 -> origin/android-2.3.7_r1
* [new branch]      android-2.3_r1 -> origin/android-2.3_r1
* [new branch]      android-4.0.1_r1 -> origin/android-4.0.1_r1
* [new branch]      android-4.0.1_r1.1 -> origin/android-4.0.1_r1.1
* [new branch]      android-4.0.1_r1.2 -> origin/android-4.0.1_r1.2
* [new branch]      android-4.0.2_r1 -> origin/android-4.0.2_r1
* [new branch]      android-4.0.3_r1 -> origin/android-4.0.3_r1
* [new branch]      android-4.0.3_r1.1 -> origin/android-4.0.3_r1.1
* [new branch]      android-4.0.4_r1 -> origin/android-4.0.4_r1
* [new branch]      android-4.0.4_r1.1 -> origin/android-4.0.4_r1.1
* [new branch]      android-4.0.4_r1.2 -> origin/android-4.0.4_r1.2
* [new branch]      android-cts-2.2_r8 -> origin/android-cts-2.2_r8
* [new branch]      android-cts-2.3_r10 -> origin/android-cts-2.3_r10
* [new branch]      android-cts-2.3_r11 -> origin/android-cts-2.3_r11
* [new branch]      android-cts-2.3_r12 -> origin/android-cts-2.3_r12
* [new branch]      android-cts-4.0.3_r1 -> origin/android-cts-4.0.3_r1
* [new branch]      android-cts-4.0.3_r2 -> origin/android-cts-4.0.3_r2
* [new branch]      android-cts-4.0_r1 -> origin/android-cts-4.0_r1
* [new branch]      android-cts-verifier-4.0.3_r1 -> origin/android-cts-verifier-4.0.3_r1
* [new branch]      android-cts-verifier-4.0_r1 -> origin/android-cts-verifier-4.0_r1
* [new branch]      android-sdk-4.0.3-tools_r1 -> origin/android-sdk-4.0.3-tools_r1
* [new branch]      android-sdk-4.0.3_r1 -> origin/android-sdk-4.0.3_r1
* [new branch]      android-sdk-adt_r16.0.1 -> origin/android-sdk-adt_r16.0.1
* [new branch]      froyo      -> origin/froyo
* [new branch]      gingerbread -> origin/gingerbread
* [new branch]      gingerbread-release -> origin/gingerbread-release
* [new branch]      ics-mr0    -> origin/ics-mr0
* [new branch]      ics-mr1    -> origin/ics-mr1
* [new branch]      master     -> origin/master
* [new branch]      tradefed   -> origin/tradefed
* [new tag]         android-1.6_r1.1_ -> android-1.6_r1.1_
* [new tag]         android-1.6_r1.2_ -> android-1.6_r1.2_
* [new tag]         android-1.6_r1.3_ -> android-1.6_r1.3_
* [new tag]         android-1.6_r1.4_ -> android-1.6_r1.4_
* [new tag]         android-1.6_r1.5_ -> android-1.6_r1.5_
* [new tag]         android-1.6_r1_ -> android-1.6_r1_
* [new tag]         android-1.6_r2_ -> android-1.6_r2_
* [new tag]         android-2.0.1_r1_ -> android-2.0.1_r1_
* [new tag]         android-2.0_r1_ -> android-2.0_r1_
* [new tag]         android-2.1_r1_ -> android-2.1_r1_
* [new tag]         android-2.1_r2.1p2_ -> android-2.1_r2.1p2_
* [new tag]         android-2.1_r2.1p_ -> android-2.1_r2.1p_
* [new tag]         android-2.1_r2.1s_ -> android-2.1_r2.1s_
* [new tag]         android-2.1_r2_ -> android-2.1_r2_
* [new tag]         android-2.2.1_r1_ -> android-2.2.1_r1_
* [new tag]         android-2.2.1_r2_ -> android-2.2.1_r2_
* [new tag]         android-2.2.2_r1_ -> android-2.2.2_r1_
* [new tag]         android-2.2.3_r1 -> android-2.2.3_r1
* [new tag]         android-2.2.3_r2 -> android-2.2.3_r2
* [new tag]         android-2.2.3_r2.1 -> android-2.2.3_r2.1
* [new tag]         android-2.2_r1.1_ -> android-2.2_r1.1_
* [new tag]         android-2.2_r1.2_ -> android-2.2_r1.2_
* [new tag]         android-2.2_r1.3_ -> android-2.2_r1.3_
* [new tag]         android-2.2_r1_ -> android-2.2_r1_
* [new tag]         android-2.3.1_r1_ -> android-2.3.1_r1_
* [new tag]         android-2.3.2_r1_ -> android-2.3.2_r1_
* [new tag]         android-2.3.3_r1.1_ -> android-2.3.3_r1.1_
* [new tag]         android-2.3.3_r1_ -> android-2.3.3_r1_
* [new tag]         android-2.3.4_r0.9_ -> android-2.3.4_r0.9_
* [new tag]         android-2.3.4_r1_ -> android-2.3.4_r1_
* [new tag]         android-2.3.5_r1_ -> android-2.3.5_r1_
* [new tag]         android-2.3.6_r0.9 -> android-2.3.6_r0.9
* [new tag]         android-2.3.6_r1 -> android-2.3.6_r1
* [new tag]         android-2.3.7_r1 -> android-2.3.7_r1
* [new tag]         android-2.3_r1_ -> android-2.3_r1_
* [new tag]         android-4.0.1_r1 -> android-4.0.1_r1
* [new tag]         android-4.0.1_r1.1 -> android-4.0.1_r1.1
* [new tag]         android-4.0.1_r1.2 -> android-4.0.1_r1.2
* [new tag]         android-4.0.2_r1 -> android-4.0.2_r1
* [new tag]         android-4.0.3_r1 -> android-4.0.3_r1
* [new tag]         android-4.0.3_r1.1 -> android-4.0.3_r1.1
* [new tag]         android-4.0.4_r1 -> android-4.0.4_r1
* [new tag]         android-4.0.4_r1.1 -> android-4.0.4_r1.1
* [new tag]         android-4.0.4_r1.2 -> android-4.0.4_r1.2
* [new tag]         android-cts-2.2_r8 -> android-cts-2.2_r8
* [new tag]         android-cts-2.3_r10 -> android-cts-2.3_r10
* [new tag]         android-cts-2.3_r11 -> android-cts-2.3_r11
* [new tag]         android-cts-2.3_r12 -> android-cts-2.3_r12
* [new tag]         android-cts-4.0.3_r1 -> android-cts-4.0.3_r1
* [new tag]         android-cts-4.0.3_r2 -> android-cts-4.0.3_r2
* [new tag]         android-cts-4.0_r1 -> android-cts-4.0_r1
* [new tag]         android-cts-verifier-4.0.3_r1 -> android-cts-verifier-4.0.3_r1
* [new tag]         android-cts-verifier-4.0_r1 -> android-cts-verifier-4.0_r1
* [new tag]         android-sdk-4.0.3-tools_r1 -> android-sdk-4.0.3-tools_r1
* [new tag]         android-sdk-4.0.3_r1 -> android-sdk-4.0.3_r1
* [new tag]         android-sdk-adt_r16.0.1 -> android-sdk-adt_r16.0.1

Your Name  [jacky]:
Your Email [jacky@jacky.(none)]: jacky@rg4.net

Your identity is: jacky <jacky@rg4.net>
is this correct [y/N]? y

Testing colorized output (for 'repo diff', 'repo status'):
  black    red      green    yellow   blue     magenta   cyan     white
  bold     dim      ul       reverse
Enable color display in this user account (y/N)? y

repo initialized in /home/jacky/bin

拒收论坛短消息,有问题请直接在论坛提问。

所有我的答复与微博同步,欢迎收听我的腾讯微博, 新浪微博,第一时间得到问题答复。

Item 1: Don't abuse your power        条款一:不要滥用权利
Item 2: Share expert knowledge        条款二:分享你的知识
Item 3: Respect other people's privacy        条款三:尊重他人的隐私
Item 4: Make yourself look good online        条款四:给自己网上留个好印象
Item 5: Help keep flame wars under control        条款五:平心静气地争论
Item 6: Respect other people's time and bandwidth        条款六:尊重别人的时间和带宽
回复 支持 反对

使用道具 举报

676

主题

2229

帖子

3万

积分

吼山居士

Rank: 9Rank: 9Rank: 9

积分
34932
QQ
 楼主| 发表于 2012-5-25 13:43:06 | 显示全部楼层
这么多,我的硬盘实在不够用,所以我只要2.3的源码,就选最新的android-2.3.7_r1
  1. ./repo init -u https://android.googlesource.com/platform/manifest -b android-2.3.7_r1
复制代码
开始下载:
  1. ./repo sync
复制代码
在家里有这个下载速度真的是超级慢,我先睡会儿觉,昨天晚上从六院回来已经将近一点了。2012年对我来说真的是“流年”,我的命好苦啊~~~~:‘(
拒收论坛短消息,有问题请直接在论坛提问。

所有我的答复与微博同步,欢迎收听我的腾讯微博, 新浪微博,第一时间得到问题答复。

Item 1: Don't abuse your power        条款一:不要滥用权利
Item 2: Share expert knowledge        条款二:分享你的知识
Item 3: Respect other people's privacy        条款三:尊重他人的隐私
Item 4: Make yourself look good online        条款四:给自己网上留个好印象
Item 5: Help keep flame wars under control        条款五:平心静气地争论
Item 6: Respect other people's time and bandwidth        条款六:尊重别人的时间和带宽
回复 支持 反对

使用道具 举报

19

主题

50

帖子

475

积分

Rank: 3Rank: 3

积分
475
发表于 2012-5-28 15:26:21 | 显示全部楼层
楼主好强,让人好有压力呀,嘿嘿。
祝楼主早点恢复健康,一切顺利。
学习中。。。。
十分感谢。
回复 支持 反对

使用道具 举报

676

主题

2229

帖子

3万

积分

吼山居士

Rank: 9Rank: 9Rank: 9

积分
34932
QQ
 楼主| 发表于 2012-5-31 12:10:59 | 显示全部楼层
今天终于来公司上班了,再次下载android源码,还是失败:
  1. repo initialized in /opt/android/src
  2. jacky@jacky:/opt/android/src$ repo sync
  3. Exception in thread Thread-1:
  4. Traceback (most recent call last):
  5.   File "/usr/lib/python2.7/threading.py", line 552, in __bootstrap_inner
  6.     self.run()
  7.   File "/usr/lib/python2.7/threading.py", line 505, in run
  8.     self.__target(*self.__args, **self.__kwargs)
  9.   File "/opt/android/src/.repo/repo/subcmds/sync.py", line 200, in _FetchHelper
  10.     clone_bundle=not opt.no_clone_bundle)
  11.   File "/opt/android/src/.repo/repo/project.py", line 968, in Sync_NetworkHalf
  12.     and self._ApplyCloneBundle(initial=is_new, quiet=quiet):
  13.   File "/opt/android/src/.repo/repo/project.py", line 1523, in _ApplyCloneBundle
  14.     exist_dst = self._FetchBundle(bundle_url, bundle_tmp, bundle_dst, quiet)
  15.   File "/opt/android/src/.repo/repo/project.py", line 1587, in _FetchBundle
  16.     raise DownloadError('%s: %s ' % (req.get_host(), str(e)))
  17. DownloadError: android.googlesource.com: <urlopen error [Errno 110] Connection timed out>
复制代码
解决方式简述如下(执行上述步骤前,已执行过,则删除重来):
         1.打开https://android.googlesource.com/new-password,gmail账号登录
         2.点击“允许访问”,得到一串信息,加入至~/.netrc。
         3.执行上述下载步骤,不过有条命令要做下修改,具体如下:
         原:./repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.3_r1
         新:./repo init -u https://android.googlesource.com/a/platform/manifest -b android-4.0.3_r1
拒收论坛短消息,有问题请直接在论坛提问。

所有我的答复与微博同步,欢迎收听我的腾讯微博, 新浪微博,第一时间得到问题答复。

Item 1: Don't abuse your power        条款一:不要滥用权利
Item 2: Share expert knowledge        条款二:分享你的知识
Item 3: Respect other people's privacy        条款三:尊重他人的隐私
Item 4: Make yourself look good online        条款四:给自己网上留个好印象
Item 5: Help keep flame wars under control        条款五:平心静气地争论
Item 6: Respect other people's time and bandwidth        条款六:尊重别人的时间和带宽
回复 支持 反对

使用道具 举报

676

主题

2229

帖子

3万

积分

吼山居士

Rank: 9Rank: 9Rank: 9

积分
34932
QQ
 楼主| 发表于 2012-6-1 14:40:43 | 显示全部楼层
下载了将近两天终于下载完了。


源码编译:
  1. . build/envsetup.sh
  2. lunch full-eng
复制代码
编译中若出错,可参考这篇文章解决:http://bbs.rosoo.net/thread-13845-1-1.html
拒收论坛短消息,有问题请直接在论坛提问。

所有我的答复与微博同步,欢迎收听我的腾讯微博, 新浪微博,第一时间得到问题答复。

Item 1: Don't abuse your power        条款一:不要滥用权利
Item 2: Share expert knowledge        条款二:分享你的知识
Item 3: Respect other people's privacy        条款三:尊重他人的隐私
Item 4: Make yourself look good online        条款四:给自己网上留个好印象
Item 5: Help keep flame wars under control        条款五:平心静气地争论
Item 6: Respect other people's time and bandwidth        条款六:尊重别人的时间和带宽
回复 支持 反对

使用道具 举报

676

主题

2229

帖子

3万

积分

吼山居士

Rank: 9Rank: 9Rank: 9

积分
34932
QQ
 楼主| 发表于 2012-6-1 14:42:01 | 显示全部楼层
问题一:

用NDK 环境编译
#include <ui/Surface.h>
#include <ui/ISurface.h>
#include <ui/Overlay.h>
这几个头文件能找到吗?  

回答:
在Android.mk文件要指定路径
LOCAL_C_INCLUDES := \
                    $(MY_ANDROID_SOURCE)/external/opencore/codecs_v2/video/mfc_c110/include \
                    $(MY_ANDROID_SOURCE)/frameworks/base/include \
                    $(MY_ANDROID_SOURCE)/hardware/libhardware/include \
                    $(MY_ANDROID_SOURCE)/system/core/include

MY_ANDROID_SOURCE是你的android源码路径,一般这类问题可以这样解决!
拒收论坛短消息,有问题请直接在论坛提问。

所有我的答复与微博同步,欢迎收听我的腾讯微博, 新浪微博,第一时间得到问题答复。

Item 1: Don't abuse your power        条款一:不要滥用权利
Item 2: Share expert knowledge        条款二:分享你的知识
Item 3: Respect other people's privacy        条款三:尊重他人的隐私
Item 4: Make yourself look good online        条款四:给自己网上留个好印象
Item 5: Help keep flame wars under control        条款五:平心静气地争论
Item 6: Respect other people's time and bandwidth        条款六:尊重别人的时间和带宽
回复 支持 反对

使用道具 举报

676

主题

2229

帖子

3万

积分

吼山居士

Rank: 9Rank: 9Rank: 9

积分
34932
QQ
 楼主| 发表于 2012-6-2 13:53:44 | 显示全部楼层
虽然整个android 2.3.7的源码编译通过了,但是在单独编译ndk-glue的时候报错:

make: Entering directory `/opt/android/src'
target thumb C++: libndk-glue <= frameworks/base/native/ndk-glue/surface.cpp
frameworks/base/native/ndk-glue/surface.cpp: In function 'void ASurface_scaleToFullScreen(ASurface*,
AndroidSurfaceInfo*, AndroidSurfaceInfo*)':
frameworks/base/native/ndk-glue/surface.cpp:146: error: 'MakeWH' is not a member of 'SkRect'
frameworks/base/native/ndk-glue/surface.cpp:147: error: 'MakeWH' is not a member of 'SkRect'
make: *** [out/target/product/generic/obj/SHARED_LIBRARIES/libndk-glue_intermediates/surface.o] Error 1
make: Leaving directory `/opt/android/src'


原因是版本不对,改成
  1. //jacky,
  2. #ifdef ANDROID_2_2
  3.     matrix.setRectToRect(SkRect::MakeWH(srcBitmap.width(), srcBitmap.height()),
  4.                          SkRect::MakeWH(dstBitmap.width(), dstBitmap.height()),
  5.                          SkMatrix::kFill_ScaleToFit);
  6. #else
  7.     SkSize srcSize = SkSize::Make(srcBitmap.width(), srcBitmap.height());
  8.     SkSize dstSize = SkSize::Make(dstBitmap.width(), dstBitmap.height());
  9.     matrix.setRectToRect(SkRect::MakeSize(srcSize),
  10.                          SkRect::MakeSize(dstSize),
  11.                          SkMatrix::kFill_ScaleToFit);
  12. #endif
复制代码
拒收论坛短消息,有问题请直接在论坛提问。

所有我的答复与微博同步,欢迎收听我的腾讯微博, 新浪微博,第一时间得到问题答复。

Item 1: Don't abuse your power        条款一:不要滥用权利
Item 2: Share expert knowledge        条款二:分享你的知识
Item 3: Respect other people's privacy        条款三:尊重他人的隐私
Item 4: Make yourself look good online        条款四:给自己网上留个好印象
Item 5: Help keep flame wars under control        条款五:平心静气地争论
Item 6: Respect other people's time and bandwidth        条款六:尊重别人的时间和带宽
回复 支持 反对

使用道具 举报

676

主题

2229

帖子

3万

积分

吼山居士

Rank: 9Rank: 9Rank: 9

积分
34932
QQ
 楼主| 发表于 2012-6-7 15:16:41 | 显示全部楼层
重新修改了一下代码终于可以过去了,不过必须要感叹一下的是,十几年前用delphi的时候,每次delphi升级,就一堆接口变化,导致一些代码要调整,那时候就在骂,这个垃圾borland;再用VB(VC相对还好)也是类似,于是又骂微软;现在Google的NDK还是一样,但十几年过去了,我已经骂不出来了,因为自己写过的诸多软件(或者SDK),也是这样,难免会出现接口变化的时候(原因如:设计之初考虑不周、需求变更等等),结果就是自己被人骂(当然是被人家在心里骂,呵呵)。

好吧,不废话了。


视频输出:

jacky@jacky:/opt/android/src$ mmm frameworks/base/native/video/jni/
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=2.3.7
TARGET_PRODUCT=generic
TARGET_BUILD_VARIANT=eng
TARGET_SIMULATOR=
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm
HOST_ARCH=x86
HOST_OS=linux
HOST_BUILD_TYPE=release
BUILD_ID=GWK74
============================================
make: Entering directory `/opt/android/src'
target Non-prelinked: libeasyvideo (out/target/product/generic/symbols/system/lib/libeasyvideo.so)
Install: out/target/product/generic/system/lib/libeasyvideo.so
make: Leaving directory `/opt/android/src'

音频输出:

jacky@jacky:/opt/android/src$ mmm frameworks/base/native/audio/jni/
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=2.3.7
TARGET_PRODUCT=generic
TARGET_BUILD_VARIANT=eng
TARGET_SIMULATOR=
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm
HOST_ARCH=x86
HOST_OS=linux
HOST_BUILD_TYPE=release
BUILD_ID=GWK74
============================================
make: Entering directory `/opt/android/src'
target Non-prelinked: libeasyaudio (out/target/product/generic/symbols/system/lib/libeasyaudio.so)
Install: out/target/product/generic/system/lib/libeasyaudio.so
make: Leaving directory `/opt/android/src'


拒收论坛短消息,有问题请直接在论坛提问。

所有我的答复与微博同步,欢迎收听我的腾讯微博, 新浪微博,第一时间得到问题答复。

Item 1: Don't abuse your power        条款一:不要滥用权利
Item 2: Share expert knowledge        条款二:分享你的知识
Item 3: Respect other people's privacy        条款三:尊重他人的隐私
Item 4: Make yourself look good online        条款四:给自己网上留个好印象
Item 5: Help keep flame wars under control        条款五:平心静气地争论
Item 6: Respect other people's time and bandwidth        条款六:尊重别人的时间和带宽
回复 支持 反对

使用道具 举报

676

主题

2229

帖子

3万

积分

吼山居士

Rank: 9Rank: 9Rank: 9

积分
34932
QQ
 楼主| 发表于 2012-6-7 15:46:18 | 显示全部楼层
又有人发短消息给我。。。。。。我在此严正声明,为让大家都能了解和解决问题,如果您真有问题要问,请直接发贴(我开论坛的目的是让大家都能从这里学到点东西,即使不能解决问题,也可了解到问题的经过。那我即使回了您的短消息,又待如何?)

以下是补充说明:
如果要单独编译Android下的某一修改过的源码,你可以参考这篇文章:http://www.rosoo.net/a/201206/16052.html
拒收论坛短消息,有问题请直接在论坛提问。

所有我的答复与微博同步,欢迎收听我的腾讯微博, 新浪微博,第一时间得到问题答复。

Item 1: Don't abuse your power        条款一:不要滥用权利
Item 2: Share expert knowledge        条款二:分享你的知识
Item 3: Respect other people's privacy        条款三:尊重他人的隐私
Item 4: Make yourself look good online        条款四:给自己网上留个好印象
Item 5: Help keep flame wars under control        条款五:平心静气地争论
Item 6: Respect other people's time and bandwidth        条款六:尊重别人的时间和带宽
回复 支持 反对

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver||С|Comsenz Inc.  

GMT+8, 2017-12-13 19:03 , Processed in 0.043056 second(s), 29 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表