iOS开发 锁屏后后台无法继续录音
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS开发 锁屏后后台无法继续录音相关的知识,希望对你有一定的参考价值。
ios开发录音功能,已开启background mode,锁屏后录音12秒中断,提示写入文件失败,怎么解决?
NSFileManager *fileManager = [NSFileManager defaultManager];NSDictionary *attributes = [NSDictionary dictionaryWithObject:NSFileProtectionNone
forKey:NSFileProtectionKey];
设置文件权限等级
[[NSFileManager defaultManager] createDirectoryAtPath:userFolderPathh withIntermediateDirectories:YES attributes:attributes error:nil];
NSFileProtectionNone创建的文件目录不被保护,这样就不会有写入错误问题 参考技术A bkguycrchg追问
搞什么啊!
嵌入式 IFRAME 视频在 Android 中退出全屏后继续在后台播放
【中文标题】嵌入式 IFRAME 视频在 Android 中退出全屏后继续在后台播放【英文标题】:Embedded IFRAME video keeps playing in background after exiting fullscreen in Android 【发布时间】:2012-10-20 23:34:02 【问题描述】:我已经搜索了很多解决此问题的方法,但显然我找不到。 好吧,顾名思义,我有一个简单的 Android 应用程序,它有一个 Webview。
public class MainActivity extends Activity
protected FrameLayout webViewPlaceholder;
protected WebView webView;
final Context myApp = this;
@Override
public void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Initialize the UI
initUI();
protected void initUI()
// Retrieve UI elements
webViewPlaceholder = ((FrameLayout)findViewById(R.id.webViewPlaceholder));
// Initialize the WebView if necessary
if (webView == null)
// Create the webview
webView = new WebView(this);
webView.setLayoutParams(new ViewGroup.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
webView.getSettings().setSupportZoom(true);
webView.getSettings().setBuiltInZoomControls(true);
webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
webView.setScrollbarFadingEnabled(true);
webView.getSettings().setLoadsImagesAutomatically(true);
// Load the URLs inside the WebView, not in the external web browser
webView.setWebViewClient(new WebViewClient());
//webView.setWebChromeClient(new CustomChromeClient(this));
webView.setWebChromeClient(new WebChromeClient()
@Override
public boolean onJsAlert(WebView view, String url, String message, final android.webkit.JsResult result)
new AlertDialog.Builder(myApp)
.setTitle("javaScript dialog")
.setMessage(message)
.setPositiveButton(android.R.string.ok,
new AlertDialog.OnClickListener()
public void onClick(DialogInterface dialog, int which)
result.confirm();
)
.setCancelable(false)
.create()
.show();
return true;
;
public void onShowCustomView(View view, CustomViewCallback callback)
super.onShowCustomView(view, callback);
Log.i("ChromeCLient", "onshowCustomView");
new AlertDialog.Builder(myApp)
.setTitle("javaScript dialog")
.setMessage("ajbdlsakndsland")
.setCancelable(true)
.create()
.show();
@Override
public void onHideCustomView()
super.onHideCustomView();
Log.i("ChromeCLient", "onhideCustomView");
);
webView.getSettings().setJavaScriptEnabled(true);
if (Build.VERSION.SDK_INT < 8)
webView.getSettings().setPluginsEnabled(true);
else
webView.getSettings().setPluginState(WebSettings.PluginState.ON);
// Load a page
webView.loadUrl("http://jsbin.com/ijixe4/3");
// Attach the WebView to its placeholder
webViewPlaceholder.addView(webView);
@Override
public void onConfigurationChanged(Configuration newConfig)
if (webView != null)
// Remove the WebView from the old placeholder
webViewPlaceholder.removeView(webView);
super.onConfigurationChanged(newConfig);
// Load the layout resource for the new configuration
setContentView(R.layout.activity_main);
// Reinitialize the UI
initUI();
@Override
protected void onSaveInstanceState(Bundle outState)
super.onSaveInstanceState(outState);
// Save the state of the WebView
webView.saveState(outState);
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState)
super.onRestoreInstanceState(savedInstanceState);
// Restore the state of the WebView
webView.restoreState(savedInstanceState);
我的问题如下。 在 webview 中加载的站点是一个包含简单 iframe 嵌入 youtube 视频的站点。 当我点击 youtube 视频上的全屏按钮时,它会改变我的应用程序方向,即使我在清单中设置:screenOrientation =“portrait”。 退出全屏时,在播放视频时(在后台)继续播放,即使由于方向更改而重新创建了 web 视图。 当方向从横向变为纵向时,我尝试在活动的 onDestroy() 方法中销毁 webview。但这没有帮助。 我尝试将 CustomWebChromeClient 设置为 webview 并实现 onShowCustomView() 方法,但除非我使用 HTML5 视频,否则显然不会调用 onShowCustomView()。 我什至尝试通过改变方向来保持 webview 的状态。
你们还有其他方法可以解决这个问题/错误吗? 我真的不想使用 HTML5 视频标签。 提前致谢。
【问题讨论】:
【参考方案1】:I found this 面临同样的问题:
webView.loadData("", "text/html", "utf-8"); // in onDestroy/onFinish
它会停止视频播放。可能会有所帮助。我现在不能说它是否对您有帮助,但您必须尝试改变方向或其他方式。 顺便说一句 Youtube has its own API 所以也许使用它而不是 WebView 更好
【讨论】:
【参考方案2】:只需重写 onPause 和 onResume 方法,并在 webView 上调用相同的方法,如下所示。
@Override
protected void onResume()
super.onResume();
this.webView.onResume();
@Override
protected void onPause()
super.onPause();
this.webView.onPause();
【讨论】:
以上是关于iOS开发 锁屏后后台无法继续录音的主要内容,如果未能解决你的问题,请参考以下文章