Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
qq_25606643
ijkplayer
提交
3216ab56
I
ijkplayer
项目概览
qq_25606643
/
ijkplayer
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
I
ijkplayer
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
3216ab56
编写于
9月 28, 2015
作者:
Z
Zhang Rui
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
android/sample: add sample media activity
上级
2ef0dd63
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
215 addition
and
5 deletion
+215
-5
android/ijkplayer/ijkplayer-sample/src/main/AndroidManifest.xml
...d/ijkplayer/ijkplayer-sample/src/main/AndroidManifest.xml
+7
-0
android/ijkplayer/ijkplayer-sample/src/main/java/tv/danmaku/ijk/media/sample/activities/SampleMediaActivity.java
...maku/ijk/media/sample/activities/SampleMediaActivity.java
+64
-0
android/ijkplayer/ijkplayer-sample/src/main/java/tv/danmaku/ijk/media/sample/application/AppActivity.java
.../tv/danmaku/ijk/media/sample/application/AppActivity.java
+3
-0
android/ijkplayer/ijkplayer-sample/src/main/java/tv/danmaku/ijk/media/sample/fragments/RecentMediaListFragment.java
...u/ijk/media/sample/fragments/RecentMediaListFragment.java
+0
-5
android/ijkplayer/ijkplayer-sample/src/main/java/tv/danmaku/ijk/media/sample/fragments/SampleMediaListFragment.java
...u/ijk/media/sample/fragments/SampleMediaListFragment.java
+136
-0
android/ijkplayer/ijkplayer-sample/src/main/res/menu/menu_app.xml
...ijkplayer/ijkplayer-sample/src/main/res/menu/menu_app.xml
+4
-0
android/ijkplayer/ijkplayer-sample/src/main/res/values/strings.xml
...jkplayer/ijkplayer-sample/src/main/res/values/strings.xml
+1
-0
未找到文件。
android/ijkplayer/ijkplayer-sample/src/main/AndroidManifest.xml
浏览文件 @
3216ab56
...
...
@@ -31,6 +31,13 @@
<category
android:name=
"android.intent.category.LAUNCHER"
/>
</intent-filter>
</activity>
<activity
android:name=
".activities.SampleMediaActivity"
android:configChanges=
"orientation|keyboardHidden|screenSize"
android:label=
"@string/app_name"
android:screenOrientation=
"user"
android:theme=
"@style/AppTheme"
>
</activity>
<activity
android:name=
".activities.RecentMediaActivity"
android:configChanges=
"orientation|keyboardHidden|screenSize"
...
...
android/ijkplayer/ijkplayer-sample/src/main/java/tv/danmaku/ijk/media/sample/activities/SampleMediaActivity.java
0 → 100644
浏览文件 @
3216ab56
/*
* Copyright (C) 2015 Zhang Rui <bbcallen@gmail.com>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
tv.danmaku.ijk.media.sample.activities
;
import
android.content.Context
;
import
android.content.Intent
;
import
android.os.Bundle
;
import
android.support.v4.app.Fragment
;
import
android.support.v4.app.FragmentTransaction
;
import
android.view.Menu
;
import
android.view.MenuItem
;
import
tv.danmaku.ijk.media.sample.R
;
import
tv.danmaku.ijk.media.sample.application.AppActivity
;
import
tv.danmaku.ijk.media.sample.fragments.SampleMediaListFragment
;
public
class
SampleMediaActivity
extends
AppActivity
{
public
static
Intent
newIntent
(
Context
context
)
{
Intent
intent
=
new
Intent
(
context
,
SampleMediaActivity
.
class
);
return
intent
;
}
public
static
void
intentTo
(
Context
context
)
{
context
.
startActivity
(
newIntent
(
context
));
}
@Override
protected
void
onCreate
(
Bundle
savedInstanceState
)
{
super
.
onCreate
(
savedInstanceState
);
Fragment
newFragment
=
SampleMediaListFragment
.
newInstance
();
FragmentTransaction
transaction
=
getSupportFragmentManager
().
beginTransaction
();
transaction
.
replace
(
R
.
id
.
body
,
newFragment
);
transaction
.
commit
();
}
@Override
public
boolean
onPrepareOptionsMenu
(
Menu
menu
)
{
boolean
show
=
super
.
onPrepareOptionsMenu
(
menu
);
if
(!
show
)
return
show
;
MenuItem
item
=
menu
.
findItem
(
R
.
id
.
action_recent
);
if
(
item
!=
null
)
item
.
setVisible
(
false
);
return
true
;
}
}
android/ijkplayer/ijkplayer-sample/src/main/java/tv/danmaku/ijk/media/sample/application/AppActivity.java
浏览文件 @
3216ab56
...
...
@@ -24,6 +24,7 @@ import android.view.MenuItem;
import
tv.danmaku.ijk.media.sample.R
;
import
tv.danmaku.ijk.media.sample.activities.RecentMediaActivity
;
import
tv.danmaku.ijk.media.sample.activities.SampleMediaActivity
;
import
tv.danmaku.ijk.media.sample.activities.SettingsActivity
;
public
class
AppActivity
extends
AppCompatActivity
{
...
...
@@ -50,6 +51,8 @@ public class AppActivity extends AppCompatActivity {
return
true
;
}
else
if
(
id
==
R
.
id
.
action_recent
)
{
RecentMediaActivity
.
intentTo
(
this
);
}
else
if
(
id
==
R
.
id
.
action_sample
)
{
SampleMediaActivity
.
intentTo
(
this
);
}
return
super
.
onOptionsItemSelected
(
item
);
...
...
android/ijkplayer/ijkplayer-sample/src/main/java/tv/danmaku/ijk/media/sample/fragments/RecentMediaListFragment.java
浏览文件 @
3216ab56
...
...
@@ -30,7 +30,6 @@ import android.view.View;
import
android.view.ViewGroup
;
import
android.widget.AdapterView
;
import
android.widget.ListView
;
import
android.widget.TextView
;
import
tv.danmaku.ijk.media.sample.R
;
import
tv.danmaku.ijk.media.sample.activities.VideoActivity
;
...
...
@@ -144,9 +143,5 @@ public class RecentMediaListFragment extends Fragment implements LoaderManager.L
return
cursor
.
getString
(
mIndex_name
);
}
final
class
ViewHolder
{
public
TextView
nameTextView
;
}
}
}
android/ijkplayer/ijkplayer-sample/src/main/java/tv/danmaku/ijk/media/sample/fragments/SampleMediaListFragment.java
0 → 100644
浏览文件 @
3216ab56
/*
* Copyright (C) 2015 Zhang Rui <bbcallen@gmail.com>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
tv.danmaku.ijk.media.sample.fragments
;
import
android.app.Activity
;
import
android.content.Context
;
import
android.os.Bundle
;
import
android.support.annotation.Nullable
;
import
android.support.v4.app.Fragment
;
import
android.view.LayoutInflater
;
import
android.view.View
;
import
android.view.ViewGroup
;
import
android.widget.AdapterView
;
import
android.widget.ArrayAdapter
;
import
android.widget.ListView
;
import
android.widget.TextView
;
import
tv.danmaku.ijk.media.sample.R
;
import
tv.danmaku.ijk.media.sample.activities.VideoActivity
;
public
class
SampleMediaListFragment
extends
Fragment
{
private
ListView
mFileListView
;
private
SampleMediaAdapter
mAdapter
;
public
static
SampleMediaListFragment
newInstance
()
{
SampleMediaListFragment
f
=
new
SampleMediaListFragment
();
return
f
;
}
@Nullable
@Override
public
View
onCreateView
(
LayoutInflater
inflater
,
ViewGroup
container
,
Bundle
savedInstanceState
)
{
ViewGroup
viewGroup
=
(
ViewGroup
)
inflater
.
inflate
(
R
.
layout
.
fragment_file_list
,
container
,
false
);
mFileListView
=
(
ListView
)
viewGroup
.
findViewById
(
R
.
id
.
file_list_view
);
return
viewGroup
;
}
@Override
public
void
onActivityCreated
(
@Nullable
Bundle
savedInstanceState
)
{
super
.
onActivityCreated
(
savedInstanceState
);
final
Activity
activity
=
getActivity
();
mAdapter
=
new
SampleMediaAdapter
(
activity
);
mFileListView
.
setAdapter
(
mAdapter
);
mFileListView
.
setOnItemClickListener
(
new
AdapterView
.
OnItemClickListener
()
{
@Override
public
void
onItemClick
(
AdapterView
<?>
parent
,
View
view
,
final
int
position
,
final
long
id
)
{
SampleMediaItem
item
=
mAdapter
.
getItem
(
position
);
String
name
=
item
.
mName
;
String
url
=
item
.
mUrl
;
VideoActivity
.
intentTo
(
activity
,
url
,
name
);
}
});
mAdapter
.
addItem
(
"http://devimages.apple.com.edgekey.net/streaming/examples/bipbop_4x3/bipbop_4x3_variant.m3u8"
,
"bipbop basic master playlist"
);
mAdapter
.
addItem
(
"http://devimages.apple.com.edgekey.net/streaming/examples/bipbop_4x3/gear1/prog_index.m3u8"
,
"bipbop basic 400x300 @ 232 kbps"
);
mAdapter
.
addItem
(
"http://devimages.apple.com.edgekey.net/streaming/examples/bipbop_4x3/gear2/prog_index.m3u8"
,
"bipbop basic 640x480 @ 650 kbps"
);
mAdapter
.
addItem
(
"http://devimages.apple.com.edgekey.net/streaming/examples/bipbop_4x3/gear3/prog_index.m3u8"
,
"bipbop basic 640x480 @ 1 Mbps"
);
mAdapter
.
addItem
(
"http://devimages.apple.com.edgekey.net/streaming/examples/bipbop_4x3/gear4/prog_index.m3u8"
,
"bipbop basic 960x720 @ 2 Mbps"
);
mAdapter
.
addItem
(
"http://devimages.apple.com.edgekey.net/streaming/examples/bipbop_4x3/gear0/prog_index.m3u8"
,
"bipbop basic 22.050Hz stereo @ 40 kbps"
);
mAdapter
.
addItem
(
"http://devimages.apple.com.edgekey.net/streaming/examples/bipbop_16x9/bipbop_16x9_variant.m3u8"
,
"bipbop advanced master playlist"
);
mAdapter
.
addItem
(
"http://devimages.apple.com.edgekey.net/streaming/examples/bipbop_16x9/gear1/prog_index.m3u8"
,
"bipbop advanced 416x234 @ 265 kbps"
);
mAdapter
.
addItem
(
"http://devimages.apple.com.edgekey.net/streaming/examples/bipbop_16x9/gear2/prog_index.m3u8"
,
"bipbop advanced 640x360 @ 580 kbps"
);
mAdapter
.
addItem
(
"http://devimages.apple.com.edgekey.net/streaming/examples/bipbop_16x9/gear3/prog_index.m3u8"
,
"bipbop advanced 960x540 @ 910 kbps"
);
mAdapter
.
addItem
(
"http://devimages.apple.com.edgekey.net/streaming/examples/bipbop_16x9/gear4/prog_index.m3u8"
,
"bipbop advanced 1289x720 @ 1 Mbps"
);
mAdapter
.
addItem
(
"http://devimages.apple.com.edgekey.net/streaming/examples/bipbop_16x9/gear5/prog_index.m3u8"
,
"bipbop advanced 1920x1080 @ 2 Mbps"
);
mAdapter
.
addItem
(
"http://devimages.apple.com.edgekey.net/streaming/examples/bipbop_16x9/gear0/prog_index.m3u8"
,
"bipbop advanced 22.050Hz stereo @ 40 kbps"
);
}
final
class
SampleMediaItem
{
String
mUrl
;
String
mName
;
public
SampleMediaItem
(
String
url
,
String
name
)
{
mUrl
=
url
;
mName
=
name
;
}
}
final
class
SampleMediaAdapter
extends
ArrayAdapter
<
SampleMediaItem
>
{
public
SampleMediaAdapter
(
Context
context
)
{
super
(
context
,
android
.
R
.
layout
.
simple_list_item_2
);
}
public
void
addItem
(
String
url
,
String
name
)
{
add
(
new
SampleMediaItem
(
url
,
name
));
}
@Override
public
long
getItemId
(
int
position
)
{
return
position
;
}
@Override
public
View
getView
(
int
position
,
View
convertView
,
ViewGroup
parent
)
{
View
view
=
convertView
;
if
(
view
==
null
)
{
LayoutInflater
inflater
=
LayoutInflater
.
from
(
parent
.
getContext
());
view
=
inflater
.
inflate
(
android
.
R
.
layout
.
simple_list_item_2
,
parent
,
false
);
}
ViewHolder
viewHolder
=
(
ViewHolder
)
view
.
getTag
();
if
(
viewHolder
==
null
)
{
viewHolder
=
new
ViewHolder
();
viewHolder
.
mNameTextView
=
(
TextView
)
view
.
findViewById
(
android
.
R
.
id
.
text1
);
viewHolder
.
mUrlTextView
=
(
TextView
)
view
.
findViewById
(
android
.
R
.
id
.
text2
);
}
SampleMediaItem
item
=
getItem
(
position
);
viewHolder
.
mNameTextView
.
setText
(
item
.
mName
);
viewHolder
.
mUrlTextView
.
setText
(
item
.
mUrl
);
return
view
;
}
final
class
ViewHolder
{
public
TextView
mNameTextView
;
public
TextView
mUrlTextView
;
}
}
}
android/ijkplayer/ijkplayer-sample/src/main/res/menu/menu_app.xml
浏览文件 @
3216ab56
...
...
@@ -3,6 +3,10 @@
xmlns:app=
"http://schemas.android.com/apk/res-auto"
xmlns:tools=
"http://schemas.android.com/tools"
tools:context=
".menu_app"
>
<item
android:id=
"@+id/action_sample"
android:title=
"@string/sample"
app:showAsAction=
"ifRoom"
/>
<item
android:id=
"@+id/action_recent"
android:title=
"@string/recent"
...
...
android/ijkplayer/ijkplayer-sample/src/main/res/values/strings.xml
浏览文件 @
3216ab56
...
...
@@ -6,6 +6,7 @@
<string
name=
"N_A"
>
N/A
</string>
<string
name=
"close"
>
Close
</string>
<string
name=
"exit"
>
Exit
</string>
<string
name=
"sample"
>
Sample
</string>
<string
name=
"recent"
>
Recent
</string>
<string
name=
"settings"
>
Settings
</string>
<string
name=
"toggle_render"
>
Render
</string>
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录