是否有可能获得对videoView正在使用的mediaPlayer实例的引用,最好是在它的ctor内?如果是这样,怎么样?
由于videoView没有mediaPlayer那么多的监听器,我希望能够访问mediaPlayer以获得额外的控制和更好的事件处理.
我使用标准的Maven目录布局在Eclipse中开发我的项目.源位于src/main/java/com/mycompany目录中.并且需要将我的源类放在main.java.com.mycompany包中.当我构建可执行jar文件时,我必须在Manifest.MF中定义主类,如:
Main-Class: main.java.com.mycompany.MyMainClass
Run Code Online (Sandbox Code Playgroud)
但是我在很多例子中看到(比如在maven-assembly-plugin或maven-jar-plugin中配置mainClass属性),没有main.java部分指定了类名.我只想拥有
Main-Class: com.mycompany.MyMainClass
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚我是如何实现这一点的,因为我在Maven中完全是新手.
我可以分配一次字幕,但之后如果我试图改变字幕.它不接受新的,它每次显示前一个.
下面的代码我用来改变字幕.
MediaPlayer mediaPlayer;
public void changeSubtitle()
{
//disable subtitle if it has
if(textTrackIndex!=0){
mediaPlayer.deselectTrack(textTrackIndex);
textTrackIndex=0;
mediaPlayer.setOnTimedTextListener(null);
}
//try to asssign new subtitle
mediaPlayer
.addTimedTextSource(
(Environment.getExternalStorageDirectory()
.getPath()
+ "/"+"filename",
MediaPlayer.MEDIA_MIMETYPE_TEXT_SUBRIP);
int textTrackIndex = findTrackIndexFor(TrackInfo.MEDIA_TRACK_TYPE_TIMEDTEXT,mediaPlayer.getTrackInfo());
if (textTrackIndex >= 0) {
mediaPlayer.selectTrack(textTrackIndex);
} else {
Log.w(TAG, "Cannot find text track!");
}
mediaPlayer.setOnTimedTextListener(this);
}
private int findTrackIndexFor(int mediaTrackType, TrackInfo[] trackInfo)
{
int index = -1;
for (int i = 0; i < trackInfo.length; i++) {
if (trackInfo[i].getTrackType() == mediaTrackType) {
return i;
} …Run Code Online (Sandbox Code Playgroud) 我有一个 ListFragment 有一个 recyclerview 和 onClick 任何项目打开 DetailsFragment。详细信息片段在底部包含另一个显示“更多项目”的回收站视图。现在 onClick 任何这些项目应该打开该特定项目的 DetailsFragment。基本上片段需要刷新。
过去,我只会使用 fragmentManager 替换 fragment。我如何去刷新片段?如何创建指向同一个片段的动作?
android android-fragments android-architecture-components android-jetpack android-architecture-navigation
我已将Google Pixel升级到Android 9.0/Pie.当我尝试从Android工作室运行应用程序时,我没有在列表中看到Google Pixel,只有一个名为null的设备FA69R0306649.当我运行我的应用程序时,Android工作室尝试安装应用程序,但随后失败.
看起来Android Studio不再能识别手机了.几个小时前,在Oreo(8.x)下工作得非常好.
此外,如果我将谷歌播放的应用程序部署为alpha,然后下载它在9.0/Pie下完美运行.
在Android Studio(3.1.4)下使用android 9.0手机运行/调试的任何建议?

android android-emulator android-studio google-pixel android-9.0-pie
我使用Android架构组件和反应式方法构建了一个启动画面.我从Preferences LiveData对象返回fun isFirstLaunchLD(): SharedPreferencesLiveData<Boolean>.我有ViewModel将LiveData传递给视图并更新首选项
val isFirstLaunch = Transformations.map(preferences.isFirstLaunchLD()) { isFirstLaunch ->
if (isFirstLaunch) {
preferences.isFirstLaunch = false
}
isFirstLaunch
}
Run Code Online (Sandbox Code Playgroud)
在我的片段中,我从ViewModel观察LiveData
viewModel.isFirstLaunch.observe(this, Observer { isFirstLaunch ->
if (isFirstLaunch) {
animationView.playAnimation()
} else {
navigateNext()
}
})
Run Code Online (Sandbox Code Playgroud)
我想现在测试我的ViewModel,看看是否正确更新了isFirstLaunch.我该怎么测试呢?我是否正确分离了所有图层?你会对这个示例代码进行什么样的测试?
android android-testing android-livedata android-architecture-components android-jetpack
这个问题可能听起来有点复杂或含糊不清,但我会尽量让它尽可能清楚.我做了很多谷歌搜索并花了很多时间,但没有找到任何与Windows相关的东西.
我想在一个屏幕上播放两个视频.一个在背景中全屏,一个在顶部,在一个小窗口或小角度/高度在右角.然后我想要一个输出,其中包括两个视频在一个屏幕上一起播放.
所以基本上一个视频覆盖另一个,然后我希望将其作为输出流式传输,以便用户可以在以后播放该流.
我不是要求你编写整个代码,只是告诉我该做什么或如何做,或者我必须使用哪个工具或第三方SDK来实现它.
更新:尝试了很多解决方案.
1. Xuggler- 不支持Android.
2. JavaCV或JJMPEG- 无法找到任何建议如何做的教程?
现在正在寻找FFMPEG-搜索了很长时间但却无法找到任何建议编码方式的教程.我找到了如何解决它的命令行方式.所以任何人都可以建议或指出FFMPEG的教程或告诉任何其他方式
我查看了各种不同的网站,在我的代码中寻找这个问题的解决方案.它是一个基本的音频播放器,有3个按钮:播放,暂停和停止.播放和暂停工作正常,所以停止但是一旦音频停止它就会拒绝再次启动,抛出一个错误:
E/MediaPlayer: stop called in state 0
E/MediaPlayer: error (-38, 0)
E/MediaPlayer: Error (-38,0)
Run Code Online (Sandbox Code Playgroud)
这是我的MainActivity.java:
import android.app.Activity;
import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.SeekBar;
import java.io.IOException;
public class MainActivity extends Activity implements MediaPlayer.OnPreparedListener {
static Button playButton;
static Button pauseButton;
static Button stopButton;
static SeekBar seekBar;
private static MediaPlayer player;
static Handler handler;
static Uri audio;
@Override
protected void onCreate(Bundle savedInstanceState) {
player = MediaPlayer.create(this, R.raw.airbourne_runnin_wild);
Uri audio = Uri.parse("android.resource://" + …Run Code Online (Sandbox Code Playgroud) 我有一台IP摄像机,它是MJPEG格式的流媒体视频.现在我的目标是接收它并在我自己的自定义Android应用程序中显示它.为此我在android平台上有三个编程选择:
那么请建议更好的解决方案?
我没有使用FFMPEG或GStreamer的经验.那么这样做的可行性是什么?
我想讨论关于Android的HLS,想要学习价格,如何购买它们,以及你对这些玩家的体验.
Vitamio - http://www.vitamio.org/en/
Standart许可证是免费的,但它不支持自适应流媒体.是否有人测试过高级版或如何购买高级版
NexStreaming - http://www.nexstreaming.com/ 我发了邮件但没有回复.有人测试过吗?
Kaltura - http://www.kaltura.org/ 它看起来像一个开源替代品,但示例代码对我没用
还有其他的替代方案吗?你在Android上玩HLS的经历是什么?
谢谢..
android ×9
android-architecture-components ×2
ffmpeg ×2
android-architecture-navigation ×1
eclipse ×1
google-pixel ×1
gstreamer ×1
ip-camera ×1
java ×1
javacv ×1
kaltura ×1
maven ×1
subtitle ×1
vitamio ×1
xuggler ×1