在Android中获取单个YouTube视频标题的最简单方法是什么?我正在使用Android YouTube API播放视频,但它们不会返回标题,因为它只支持播放选项.我唯一需要的是显示视频的标题,我显然有视频ID本身,但我不知道从哪里开始.
我看过的东西:
出于某种原因,我发现很难理解如何使用它们,这对我来说似乎是一个非常简单的动作.我很好奇是否有更简单的选择,或者是否有人可以帮助我走上正轨.
我以这种方式旋转位图,在每个按钮上单击图像旋转90度
Matrix matrix = new Matrix();
matrix.postRotate(90);
rotated = Bitmap.createBitmap(rotated, 0, 0,
rotated.getWidth(), rotated.getHeight(), matrix, true);
iv.setImageBitmap(rotated);
Run Code Online (Sandbox Code Playgroud)
我用很多图像试过这个,但是现在一个引起了OutOfMemoryError.有办法防止这种情况吗?当然我可以调用recycle,但后来我丢失了位图并且必须从imageview再次获取它.我认为这不会有任何区别.
我正在制作一个应用程序,可以从我自己的YouTube播放列表中显示YouTube视频.我正在使用YouTube Android API完成此操作.我使用YouTubeThumbnailView显示视频,我当然可以在一个YouTubeThumbnailView中获取播放列表,但我正在寻找一种方法从播放列表中获取所有视频并将它们存储在字符串数组中,这样我就可以创建一个ListView来显示所有视频.
所以我唯一需要的是ID,然后我可以让它工作.我查看了视频墙演示,但除了它在我的Nexus 7上的FC之外,找不到我需要的东西.
我正试图获得MP3文件的专辑封面.我认为最好和最干净的方法是使用MediaMetadataRetriever类.但由于某些原因调用getEmbeddedPicture方法不起作用.图像未显示,LogCat显示错误:
04-29 18:36:19.520: E/MediaMetadataRetrieverJNI(25661): getEmbeddedPicture: Call to getEmbeddedPicture failed.
Run Code Online (Sandbox Code Playgroud)
这是似乎不起作用的代码:
@Override
protected Void doInBackground(Void... params) {
// TODO Auto-generated method stub
MediaMetadataRetriever mmdr = new MediaMetadataRetriever();
mmdr.setDataSource(path); //path of the MP3 file on SD Card
bites = mmdr.getEmbeddedPicture();
if(bites != null)
artBM = BitmapFactory.decodeByteArray(bites, 0, bites.length);
return null;
}
Run Code Online (Sandbox Code Playgroud)
我在Android 4.2的设备上运行它,因此MediaMetadataRetriever应该没有任何问题(需要api lvl 10).我测试的文件在Windows资源管理器中显示了一个图像,所以似乎嵌入了艺术.有没有人对此有任何想法?
我正在使用VideoView来显示视频流.因为我需要将MediaController附加到视图本身,我想防止视频视图导致的黑屏闪烁.我在Nexus 7上测试了下面的代码,就像一个魅力.但是现在我在我的SGS2上测试了它,并且由于某种原因从未调用过OnVideoSizeChanged.
@Override
public void onPrepared(MediaPlayer mp) {
// TODO Auto-generated method stub
Log.i("ONPREP", "called");
mp.setOnVideoSizeChangedListener(new OnVideoSizeChangedListener() {
@Override
public void onVideoSizeChanged(MediaPlayer mp, int width, int height) {
videoview.setMediaController(mc);
mc.setAnchorView(videoview);
videoview.setBackgroundColor(Color.TRANSPARENT);
Log.i("ONSIZECHANGE", "called");
}
});
}
Run Code Online (Sandbox Code Playgroud)
视频播放应该是这样,我通过删除OnVideoSizeChangedListener并将代码放在onPrepared方法中进行测试,但这会带回屏幕闪烁问题并使mediacontroller无法连接.此行为也由LogCat中的日志信息显示,ONPREP标记显示但从不显示ONSIZECHANGE.在我的N7上都显示,显然会导致背景颜色发生变化.
这是设置和启动视频的代码:
videoview.setOnPreparedListener(MainActivity.this);
mc = new MediaController(MainActivity.this);
mc.setMediaPlayer(videoview);
videoview.setVideoURI(videourI);
videoview.start();
Run Code Online (Sandbox Code Playgroud)
那么为什么要在一台设备上调用而不在另一台设备上呢?
编辑:在我的Note 2上测试它,与SGS2上的问题相同.
我需要将我的资源文件夹中的图像保存在SQLite数据库中.此数据库已预先加载(复制到数据/路径),因此运行时不会填充.我试图在SQLite的文本字段中保存它:"R.drawable.picture1".
我的drawable文件夹中有大约300张小尺寸图片(jpg).当我运行查询时,游标返回特定字符串.现在我需要在ImageView上将其设置为ImageResource,但无论我尝试它,它似乎都不起作用.
我已经尝试将其解析为int,但似乎没有用.无论我尝试什么,logcat一直告诉我R.id.picture1不是一个有效的整数.我前段时间看到过一种可能的解决方案,但我整天都在搜索它,但似乎无法找到它.
我不想要的:将图像转换为字节数组,以便将其保存为blob.我只需要一种方法来存储和检索可绘制的引用,我可以使用它来设置ImageView上的drawable.
我不是那么有经验所以我希望有人可以帮助我.
我有一个包含在应用程序中的地图.我需要地图放大标记和用户位置,但保持标记居中.放大效果很好,但当然不会将标记置于地图上.
@Override
public void onLocationChanged(Location location) {
if (mListener != null) {
mListener.onLocationChanged(location);
LatLngBounds bounds = new LatLngBounds.Builder()
.include(new LatLng(location.getLatitude(),location.getLongitude()))
.include((new LatLng(52.3563, 4.8790)))
.build();
mMap.animateCamera(CameraUpdateFactory.newLatLngBounds(bounds, 35));
}
}
Run Code Online (Sandbox Code Playgroud)
将两者保持在界限内但保持标记居中的最佳方法是什么?我似乎无法在官方文档中找到解决方案.
我真的需要一些帮助来解决从一个活动切换到另一个活动时的泄漏问题.我正在尝试使用YouTube Android API,我将一个播放列表加载到一些可点击的缩略图中,然后播放视频.一切似乎都有效,但后来我注意到Logcat发生了泄漏.
这是我的代码:
public class MainActivity extends Activity implements
OnInitializedListener,
YouTubeThumbnailLoader.OnThumbnailLoadedListener, OnClickListener {
YouTubeThumbnailView thumbs1, thumbs2, thumbs3, thumbs4, thumbs5
YouTubeThumbnailLoader Loader;
ImageView play1, play2, play3, play4, play5;
RelativeLayout tempLayout;
public static final String DEVELOPER_KEY = "xxxxxxxxxxxxxxxxxxxxxxxx";
String videolist, taal;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_main);
tempLayout = (RelativeLayout) findViewById(R.id.tempLayout);
tempLayout.setVisibility(View.VISIBLE);
taal = Locale.getDefault().getLanguage();
if(taal.equals("nl")){
videolist = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
}else{
videolist = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
}
play1 = (ImageView) findViewById(R.id.play1);
play2 = (ImageView) findViewById(R.id.play2);
play3 = (ImageView) findViewById(R.id.play3); …Run Code Online (Sandbox Code Playgroud) 我有一个ArrayList,可以包含1到15个字符串.这些字符串需要保存在我的共享首选项中,现在我知道如何通过数组迭代来获取字符串.我不知道的是,有一种干净的方法可以动态地将字符串添加到我的共享首选项文件中吗?我可以通过创建15个字符串并使用if语句填充共享首选项来缓慢地执行此操作,但我想知道是否有更好的方法.
谢谢.
android ×9
youtube-api ×2
albumart ×1
arraylist ×1
bitmap ×1
drawable ×1
memory-leaks ×1
mp3 ×1
sqlite ×1
youtube ×1