sdldnf闪退怎么解决win7,请问该怎么弄

关于SDL2头文件的一个问题【c4droid吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:35,516贴子:
关于SDL2头文件的一个问题收藏
为什么我运行带有SDL2头文件的程序时闪退,两天前还能运行,现在怎么是怎么回事啊,大神们都来围观吧
登录百度帐号推荐应用无数据包不游戏
浏览 1766840 次
帖子 111437 个
打开出现SDL 什么的 一点就闪退
请教各位大神
该评论提到的应用:
忘记过去_26
不会吧,我红米美问题
亲,想发表评论请下载哦~
全部: 61442
解决一切能解决的搜索问题
全部: 256222
沙盒创造游戏综合讨论区
未必如ζ此
中二黑の小Ki[ぎんがけい]
Saberの終わり黒い法官
我们的产品
客服邮箱:
微博/微信合作QQ:
网游玩家客服QQ:
24小时举报电话号码:
广告合作QQ:
游戏合作QQ:
北京掌汇天下科技有限公司 版权所有
京公网安备39号|ffmpeg(18)

 基本环境:
  1. 操作系统:Windows10& 64位;
  2. Android Studio 2.3,64位。
  3. Android NDK开发包:直接使用Android Studio安装NDK。(需要梯子)
  4.按照上述三编译好了ffmpeg相关的.so共享库文件和按照上述二编译好的SDL Demo程序
  操作步骤:
  第一步:拷贝ffmpeg的include文件和so文件到SDL工程目录中
  1、将ffmpeg的include目录下的libavcodec、libavdevice等目录拷贝到android-project\jni\SDL\include目录下。
  2、新建目录android-project\jni\src\lib,将编译好的ffmpelibavcodec-57.so、libavdevice-57.so等拷贝到这个目录下。
  第二步,编辑android-project\jni\src\Android.mk
  1、主要是添加ffmpeg有关库链接的支持,如下:
 LOCAL_PATH := $(call my-dir)
  #begin 预编so模块,后面链接进来
  include $(CLEAR_VARS)
  LOCAL_MODULE
:= avcodec
  LOCAL_SRC_FILES := lib/libavcodec-57.so
  include $(PREBUILT_SHARED_LIBRARY)
  include $(CLEAR_VARS)
  LOCAL_MODULE
:= avdevice
  LOCAL_SRC_FILES := lib/libavdevice-57.so
  include $(PREBUILT_SHARED_LIBRARY)
  include $(CLEAR_VARS)
  LOCAL_MODULE
:= avfilter
  LOCAL_SRC_FILES := lib/libavfilter-6.so
  include $(PREBUILT_SHARED_LIBRARY)
  include $(CLEAR_VARS)
  LOCAL_MODULE
:= avformat
  LOCAL_SRC_FILES := lib/libavformat-57.so
  include $(PREBUILT_SHARED_LIBRARY)
  include $(CLEAR_VARS)
  LOCAL_MODULE
  LOCAL_SRC_FILES := lib/libavutil-55.so
  include $(PREBUILT_SHARED_LIBRARY)
  include $(CLEAR_VARS)
  LOCAL_MODULE
:= swresample
  LOCAL_SRC_FILES := lib/libswresample-2.so
  include $(PREBUILT_SHARED_LIBRARY)
  include $(CLEAR_VARS)
  LOCAL_MODULE
:= swscale
  LOCAL_SRC_FILES := lib/libswscale-4.so
  include $(PREBUILT_SHARED_LIBRARY)
  include $(CLEAR_VARS)
  LOCAL_MODULE := main
  SDL_PATH := ../SDL
  LOCAL_C_INCLUDES := $(LOCAL_PATH)/$(SDL_PATH)/include
  # Add your application source files here...
  LOCAL_SRC_FILES := $(SDL_PATH)/src/main/android/SDL_android_main.c \
   main.c
  LOCAL_SHARED_LIBRARIES := SDL2 avcodec avdevice avfilter avformat avutil swresample
  LOCAL_LDLIBS := -lGLESv1_CM -lGLESv2 -llog
  include $(BUILD_SHARED_LIBRARY)
【坑】如果这句:
  LOCAL_SRC_FILES := $(SDL_PATH)/src/main/android/SDL_android_main.c \
  &main.c
  放到前面,随LOCAL_PATH := $(call my-dir)后,这ndk-build编译出来后,将来在机器上执行“SDL App”,就是闪退,必须放到后面才行。
 2、修改main.c文件,如下:
 #include &stdlib.h&
  #include &stdio.h&
  #include &time.h&
  #include &android/log.h&
  #include &libavformat/avformat.h&
  #include &libavcodec/avcodec.h&
  #include &libswscale/swscale.h&
  #include &libavutil/imgutils.h&
  #include &libavutil/avutil.h&
  #include &SDL.h&
  #define LOG_TAG
  #undef LOG
  #define LOGD(...)
__android_log_print(ANDROID_LOG_DEBUG,LOG_TAG,__VA_ARGS__)
  #define LOGI(...)
__android_log_print(ANDROID_LOG_INFO,LOG_TAG,__VA_ARGS__)
  #define LOGW(...)
__android_log_print(ANDROID_LOG_WARN,LOG_TAG,__VA_ARGS__)
  #define LOGE(...)
__android_log_print(ANDROID_LOG_ERROR,LOG_TAG,__VA_ARGS__)
  #define LOGF(...)
__android_log_print(ANDROID_LOG_FATAL,LOG_TAG,__VA_ARGS__)
  typedef struct Sprite
   SDL_Texture*
   Uint16
   Uint16
  /* Adapted from SDL's testspriteminimal.c */
  Sprite LoadSprite(const char* file, SDL_Renderer* renderer)
   result.texture = NULL;
   result.w = 0;
   result.h = 0;
SDL_Surface*
/* Load the sprite image */
temp = SDL_LoadBMP(file);
if (temp == NULL)
fprintf(stderr, &Couldn't load %s: %s\n&, file, SDL_GetError());
result.w = temp-&w;
result.h = temp-&h;
/* Create texture from the image */
result.texture = SDL_CreateTextureFromSurface(renderer, temp);
if (!result.texture) {
fprintf(stderr, &Couldn't create texture: %s\n&, SDL_GetError());
SDL_FreeSurface(temp);
SDL_FreeSurface(temp);
  void draw(SDL_Window* window, SDL_Renderer* renderer, const Sprite sprite)
   int w,
   SDL_GetWindowSize(window, &w, &h);
   SDL_Rect destRect = {w/2 - sprite.w/2, h/2 - sprite.h/2, sprite.w, sprite.h};
   /* Blit the sprite onto the screen */
   SDL_RenderCopy(renderer, sprite.texture, NULL, &destRect);
  int main(int argc, char *argv[])
SDL_Window *
SDL_Renderer *
   //char info[10000] = { 0 };
   av_register_all();
   //sprintf(info, &%s\n&, avcodec_configuration());
   //printf(&%s\n&, avcodec_configuration());
   LOGI(&SDL HelloWorld&);
   LOGI(&%s\n&, avcodec_configuration());
if(SDL_CreateWindowAndRenderer(0, 0, 0, &window, &renderer) & 0)
   Sprite sprite = LoadSprite(&image.bmp&, renderer);
if(sprite.texture == NULL)
/* Main render loop */
Uint8 done = 0;
while(!done)
/* Check for events */
while(SDL_PollEvent(&event))
if(event.type == SDL_QUIT || event.type == SDL_KEYDOWN || event.type == SDL_FINGERDOWN)
/* Draw a gray background */
SDL_SetRenderDrawColor(renderer, 0xA0, 0xA0, 0xA0, 0xFF);
SDL_RenderClear(renderer);
draw(window, renderer, sprite);
/* Update the screen! */
SDL_RenderPresent(renderer);
SDL_Delay(10);
3、进入到android-project\jni目录,执行ndk-build,将在目录android-project\libs\armeabi-v7a下生成libavcodec-57.so,libavdevice-57.so,libavfilter-6.so,libavformat-57.so,libavutil-55.so,libswresample-2.so,libswscale-4.so,libmain.so,libSDL2.so共9个文件。
  第三步,到Android studio编辑生成apk
  1、将上述9个文件拷贝到“二、android studio 2.3 编译运行SDL 2.05 Demo”导入的andriod studio的hellosdl工程中的hellpsdl\app\src\main\jniLibs\armeabi-v7a目录中。
  2、编辑SDLActivity.java文件,加入引用ffmpeg库文件代码:
 public void loadLibraries() {
System.loadLibrary(&avcodec-57&);
System.loadLibrary(&avdevice-57&);
System.loadLibrary(&avfilter-6&);
System.loadLibrary(&avformat-57&);
System.loadLibrary(&avutil-55&);
System.loadLibrary(&swresample-2&);
System.loadLibrary(&swscale-4&);
for (String lib : getLibraries()) {
System.loadLibrary(lib);
能后编译,到设备执行,就可以在android studio的Andriod Monitor到catlog结果了。
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:17586次
排名:千里之外
原创:29篇
评论:16条
(9)(1)(3)(1)(3)(4)(7)(2)Windows下Mingw编译生成的ffplay闪退
来源:csdn
【0.环境:Windows8 x64; mingw-get version 0.6.2-beta-
Mingw编译ffmpeg2.6.1,sdl1.2.15
Configure配置如下:
./configure --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-libfreetype --enable-libmp3lame --enable-libvorbis --enable-libx264 --enable-libxvid --enable-zlib
官网4月10日的ffplay configure配置如下:
configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-av
isynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enab
le-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --
enable-libdcadec --enable-libfreetype --enable-libgme --enable-libgsm --enable-l
ibilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enab
le-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --en
able-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --ena
ble-libtwolame --enable-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc
--enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enabl
e-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-lzma --ena
ble-decklink --enable-zlib
自己编译生成的ffplay播放视频只能播放xinaLuowei1.mkv.
该视频信息如下:
Input #0, matroska,webm, from 'xinaLuowei1.mkv':
: Haali Matroska Writer b0
Duration: 00:01:06.73, start: 0.000000, bitrate: 8415 kb/s
Stream #0:0(eng): Video: h264 (Constrained Baseline), yuv420p, , SA
fps, 30 tbr, 20k tbn, 60 tbc (default)
1.更改封装后能够播放(mp4)
命令如下:
G:\LY_Work\videoPlayer\ffmpegExeTest>ffmpeg.exe -i xinaLuowei1.mkv -vcod
ec copy -acodec copy -y test.mp4
查看test.mp4的信息为:
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'test.mp4':
major_brand
minor_version
compatible_brands: isomiso2avc1mp41
: Lavf56.30.100
Duration: 00:01:06.73, start: 0.000000, bitrate: 8415 kb/s
Stream #0:0(eng): Video: h264 (Constrained Baseline) (avc1 / 0x), yu
v420p, , 8413 kb/s, 30 fps, 30 tbr, 20k tbn, 60 tbc (default)
handler_name
: VideoHandler
2.裁剪后不能播放:
G:\LY_Work\videoPlayer\ffmpegExeTest>ffmpeg.exe -i xinaLuowei1.mkv
ter:v "crop=720:576:0:0" -y test720x576.mkv
查看test720x576.mkv的信息为:
Input #0, matroska,webm, from 'test720x576.mkv':
: Lavf56.30.100
Duration: 00:01:06.80, start: 0.067000, bitrate: 706 kb/s
Stream #0:0(eng): Video: h264 (High), yuv420p, 720x576 [SAR 1:1 DAR 5:4], 30
fps, 30 tbr, 1k tbn, 60 tbc (default)
: Lavc56.34.100 libx264
播放未编码(bgr24)的视频和其他格式(其中含有x264编码的视频,configure时已经包含了x264库)的视频闪退.
开始怀疑是configure时解码库没有包含,但是播放未编码的视频和x264视频依然闪退,不知道是什么原因?各位有没有遇到类似问题,在线讨论。】
luoyanghero:
为什么没人回,求顶
wgc555333:
LZ 怎么解决的,遇到同样的问题
luoyanghero:
没有解决,后面怀疑是sdl的原因。不知道怎么debug ffmpeg,能调试就好找出问题了
免责声明:本站部分内容、图片、文字、视频等来自于互联网,仅供大家学习与交流。相关内容如涉嫌侵犯您的知识产权或其他合法权益,请向本站发送有效通知,我们会及时处理。反馈邮箱&&&&。
学生服务号
在线咨询,奖学金返现,名师点评,等你来互动}

我要回帖

更多关于 cf闪退 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信